Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
S
spdlog
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
spdlog
Commits
f36be4d5
Commit
f36be4d5
authored
Mar 30, 2019
by
gabime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved lite source to folders|
parent
c2b0e223
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
414 additions
and
407 deletions
+414
-407
CMakeLists.txt
CMakeLists.txt
+166
-167
CMakeLists.txt
lite/CMakeLists.txt
+0
-6
CMakeLists.txt
spdlite/CMakeLists.txt
+14
-0
CMakeLists.txt
spdlite/example/CMakeLists.txt
+3
-5
create_logger.cpp
spdlite/example/create_logger.cpp
+1
-1
example.cpp
spdlite/example/example.cpp
+12
-11
spdlite.h
spdlite/include/spdlite/spdlite.h
+0
-0
spdlite_global.h
spdlite/include/spdlite/spdlite_global.h
+0
-0
spdlite_macros.h
spdlite/include/spdlite/spdlite_macros.h
+0
-0
spdlite.cpp
spdlite/src/spdlite.cpp
+155
-155
spdlite_global.cpp
spdlite/src/spdlite_global.cpp
+63
-62
No files found.
CMakeLists.txt
View file @
f36be4d5
#
# Copyright(c) 2015 Ruslan Baratov.
# Distributed under the MIT License (http://opensource.org/licenses/MIT)
#
cmake_minimum_required
(
VERSION 3.1
)
project
(
spdlog VERSION 1.3.1 LANGUAGES CXX
)
include
(
CMakeDependentOption
)
include
(
GNUInstallDirs
)
#---------------------------------------------------------------------------------------
# set default build to release
#---------------------------------------------------------------------------------------
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE
"Release"
CACHE STRING
"Choose Release or Debug"
FORCE
)
endif
()
message
(
STATUS
"Build type: "
${
CMAKE_BUILD_TYPE
}
)
#---------------------------------------------------------------------------------------
# compiler config
#---------------------------------------------------------------------------------------
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
set
(
CMAKE_CXX_EXTENSIONS OFF
)
if
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"GNU"
OR
"
${
CMAKE_CXX_COMPILER_ID
}
"
MATCHES
"Clang"
)
add_compile_options
(
"-Wall"
)
add_compile_options
(
"-Wextra"
)
add_compile_options
(
"-Wconversion"
)
add_compile_options
(
"-pedantic"
)
add_compile_options
(
"-Wfatal-errors"
)
endif
()
#---------------------------------------------------------------------------------------
# address sanitizers check
#---------------------------------------------------------------------------------------
include
(
cmake/sanitizers.cmake
)
#---------------------------------------------------------------------------------------
# spdlog target
#---------------------------------------------------------------------------------------
add_library
(
spdlog INTERFACE
)
add_library
(
spdlog::spdlog ALIAS spdlog
)
# Check if spdlog is being used directly or via add_subdirectory
set
(
SPDLOG_MASTER_PROJECT OFF
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
set
(
SPDLOG_MASTER_PROJECT ON
)
endif
()
option
(
SPDLOG_BUILD_EXAMPLES
"Build examples"
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_BUILD_BENCH
"Build benchmarks (Requires https://github.com/google/benchmark.git to be installed)"
OFF
)
option
(
SPDLOG_BUILD_TESTS
"Build tests"
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_FMT_EXTERNAL
"Use external fmt library instead of bundled"
OFF
)
option
(
SPDLOG_INSTALL
"Generate the install target."
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_BUILD_LITE
"Build spdlog lite"
${
SPDLOG_MASTER_PROJECT
}
)
if
(
SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt
)
find_package
(
fmt REQUIRED CONFIG
)
endif
()
target_include_directories
(
spdlog
INTERFACE
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
if
(
SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog INTERFACE SPDLOG_FMT_EXTERNAL
)
target_link_libraries
(
spdlog INTERFACE fmt::fmt
)
endif
()
set
(
HEADER_BASE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/include"
)
if
(
SPDLOG_BUILD_EXAMPLES
)
add_subdirectory
(
example
)
endif
()
if
(
SPDLOG_BUILD_TESTS
)
include
(
CTest
)
add_subdirectory
(
tests
)
endif
()
if
(
SPDLOG_BUILD_BENCH
)
add_subdirectory
(
bench
)
endif
()
if
(
SPDLOG_BUILD_LITE
)
add_subdirectory
(
lite
)
add_subdirectory
(
lite-example
)
endif
()
#---------------------------------------------------------------------------------------
# Install/export targets and files
#---------------------------------------------------------------------------------------
if
(
SPDLOG_INSTALL
)
# set files and directories
set
(
config_install_dir
"
${
CMAKE_INSTALL_LIBDIR
}
/cmake/
${
PROJECT_NAME
}
"
)
set
(
include_install_dir
"
${
CMAKE_INSTALL_INCLUDEDIR
}
"
)
set
(
pkgconfig_install_dir
"
${
CMAKE_INSTALL_LIBDIR
}
/pkgconfig"
)
set
(
version_config
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
ConfigVersion.cmake"
)
set
(
project_config
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
Config.cmake"
)
set
(
targets_config
"
${
PROJECT_NAME
}
Targets.cmake"
)
set
(
pkg_config
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
.pc"
)
set
(
targets_export_name
"
${
PROJECT_NAME
}
Targets"
)
set
(
namespace
"
${
PROJECT_NAME
}
::"
)
# generate package version file
include
(
CMakePackageConfigHelpers
)
write_basic_package_version_file
(
"
${
version_config
}
"
COMPATIBILITY SameMajorVersion
)
# configure pkg config file
configure_file
(
"cmake/spdlog.pc.in"
"
${
pkg_config
}
"
@ONLY
)
# configure spdlogConfig.cmake file
configure_file
(
"cmake/Config.cmake.in"
"
${
project_config
}
"
@ONLY
)
# install targets
install
(
TARGETS spdlog
EXPORT
"
${
targets_export_name
}
"
)
# install headers
install
(
DIRECTORY
"
${
HEADER_BASE
}
/
${
PROJECT_NAME
}
"
DESTINATION
"
${
include_install_dir
}
"
)
# install project config and version file
install
(
FILES
"
${
project_config
}
"
"
${
version_config
}
"
DESTINATION
"
${
config_install_dir
}
"
)
# install pkg config file
install
(
FILES
"
${
pkg_config
}
"
DESTINATION
"
${
pkgconfig_install_dir
}
"
)
# install targets config file
install
(
EXPORT
"
${
targets_export_name
}
"
NAMESPACE
"
${
namespace
}
"
DESTINATION
"
${
config_install_dir
}
"
FILE
${
targets_config
}
)
# export build directory targets file
export
(
EXPORT
${
targets_export_name
}
NAMESPACE
"
${
namespace
}
"
FILE
${
targets_config
}
)
# register project in CMake user registry
export
(
PACKAGE
${
PROJECT_NAME
}
)
endif
()
file
(
GLOB_RECURSE spdlog_include_SRCS
"
${
HEADER_BASE
}
/*.h"
)
add_custom_target
(
spdlog_headers_for_ide SOURCES
${
spdlog_include_SRCS
}
)
#
# Copyright(c) 2015 Ruslan Baratov.
# Distributed under the MIT License (http://opensource.org/licenses/MIT)
#
cmake_minimum_required
(
VERSION 3.1
)
project
(
spdlog VERSION 1.3.1 LANGUAGES CXX
)
include
(
CMakeDependentOption
)
include
(
GNUInstallDirs
)
#---------------------------------------------------------------------------------------
# set default build to release
#---------------------------------------------------------------------------------------
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE
"Release"
CACHE STRING
"Choose Release or Debug"
FORCE
)
endif
()
message
(
STATUS
"Build type: "
${
CMAKE_BUILD_TYPE
}
)
#---------------------------------------------------------------------------------------
# compiler config
#---------------------------------------------------------------------------------------
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
set
(
CMAKE_CXX_EXTENSIONS OFF
)
if
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"GNU"
OR
"
${
CMAKE_CXX_COMPILER_ID
}
"
MATCHES
"Clang"
)
add_compile_options
(
"-Wall"
)
add_compile_options
(
"-Wextra"
)
add_compile_options
(
"-Wconversion"
)
add_compile_options
(
"-pedantic"
)
add_compile_options
(
"-Wfatal-errors"
)
endif
()
#---------------------------------------------------------------------------------------
# address sanitizers check
#---------------------------------------------------------------------------------------
include
(
cmake/sanitizers.cmake
)
#---------------------------------------------------------------------------------------
# spdlog target
#---------------------------------------------------------------------------------------
add_library
(
spdlog INTERFACE
)
add_library
(
spdlog::spdlog ALIAS spdlog
)
# Check if spdlog is being used directly or via add_subdirectory
set
(
SPDLOG_MASTER_PROJECT OFF
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
set
(
SPDLOG_MASTER_PROJECT ON
)
endif
()
option
(
SPDLOG_BUILD_EXAMPLES
"Build examples"
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_BUILD_BENCH
"Build benchmarks (Requires https://github.com/google/benchmark.git to be installed)"
OFF
)
option
(
SPDLOG_BUILD_TESTS
"Build tests"
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_FMT_EXTERNAL
"Use external fmt library instead of bundled"
OFF
)
option
(
SPDLOG_INSTALL
"Generate the install target."
${
SPDLOG_MASTER_PROJECT
}
)
option
(
SPDLOG_BUILD_LITE
"Build spdlog lite"
${
SPDLOG_MASTER_PROJECT
}
)
if
(
SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt
)
find_package
(
fmt REQUIRED CONFIG
)
endif
()
target_include_directories
(
spdlog
INTERFACE
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
if
(
SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog INTERFACE SPDLOG_FMT_EXTERNAL
)
target_link_libraries
(
spdlog INTERFACE fmt::fmt
)
endif
()
set
(
HEADER_BASE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/include"
)
if
(
SPDLOG_BUILD_EXAMPLES
)
add_subdirectory
(
example
)
endif
()
if
(
SPDLOG_BUILD_TESTS
)
include
(
CTest
)
add_subdirectory
(
tests
)
endif
()
if
(
SPDLOG_BUILD_BENCH
)
add_subdirectory
(
bench
)
endif
()
if
(
SPDLOG_BUILD_LITE
)
add_subdirectory
(
spdlite
)
endif
()
#---------------------------------------------------------------------------------------
# Install/export targets and files
#---------------------------------------------------------------------------------------
if
(
SPDLOG_INSTALL
)
# set files and directories
set
(
config_install_dir
"
${
CMAKE_INSTALL_LIBDIR
}
/cmake/
${
PROJECT_NAME
}
"
)
set
(
include_install_dir
"
${
CMAKE_INSTALL_INCLUDEDIR
}
"
)
set
(
pkgconfig_install_dir
"
${
CMAKE_INSTALL_LIBDIR
}
/pkgconfig"
)
set
(
version_config
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
ConfigVersion.cmake"
)
set
(
project_config
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
Config.cmake"
)
set
(
targets_config
"
${
PROJECT_NAME
}
Targets.cmake"
)
set
(
pkg_config
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
PROJECT_NAME
}
.pc"
)
set
(
targets_export_name
"
${
PROJECT_NAME
}
Targets"
)
set
(
namespace
"
${
PROJECT_NAME
}
::"
)
# generate package version file
include
(
CMakePackageConfigHelpers
)
write_basic_package_version_file
(
"
${
version_config
}
"
COMPATIBILITY SameMajorVersion
)
# configure pkg config file
configure_file
(
"cmake/spdlog.pc.in"
"
${
pkg_config
}
"
@ONLY
)
# configure spdlogConfig.cmake file
configure_file
(
"cmake/Config.cmake.in"
"
${
project_config
}
"
@ONLY
)
# install targets
install
(
TARGETS spdlog
EXPORT
"
${
targets_export_name
}
"
)
# install headers
install
(
DIRECTORY
"
${
HEADER_BASE
}
/
${
PROJECT_NAME
}
"
DESTINATION
"
${
include_install_dir
}
"
)
# install project config and version file
install
(
FILES
"
${
project_config
}
"
"
${
version_config
}
"
DESTINATION
"
${
config_install_dir
}
"
)
# install pkg config file
install
(
FILES
"
${
pkg_config
}
"
DESTINATION
"
${
pkgconfig_install_dir
}
"
)
# install targets config file
install
(
EXPORT
"
${
targets_export_name
}
"
NAMESPACE
"
${
namespace
}
"
DESTINATION
"
${
config_install_dir
}
"
FILE
${
targets_config
}
)
# export build directory targets file
export
(
EXPORT
${
targets_export_name
}
NAMESPACE
"
${
namespace
}
"
FILE
${
targets_config
}
)
# register project in CMake user registry
export
(
PACKAGE
${
PROJECT_NAME
}
)
endif
()
file
(
GLOB_RECURSE spdlog_include_SRCS
"
${
HEADER_BASE
}
/*.h"
)
add_custom_target
(
spdlog_headers_for_ide SOURCES
${
spdlog_include_SRCS
}
)
lite/CMakeLists.txt
deleted
100644 → 0
View file @
c2b0e223
cmake_minimum_required
(
VERSION 3.1
)
project
(
spdlog_lite
)
add_library
(
spdlog_lite spdlite.cpp spdlite.h spdlite_global.cpp spdlite_global.h spdlite_macros.h
)
target_link_libraries
(
spdlog_lite spdlog::spdlog
)
spdlite/CMakeLists.txt
0 → 100644
View file @
f36be4d5
cmake_minimum_required
(
VERSION 3.1
)
project
(
spdlite
)
include_directories
(
${
PROJECT_SOURCE_DIR
}
/include
)
file
(
GLOB SRC_FILES
${
PROJECT_SOURCE_DIR
}
/src/*.cpp
)
file
(
GLOB HEADER_FILES
${
PROJECT_SOURCE_DIR
}
/include/*.h
)
add_library
(
spdlite
${
SRC_FILES
}
${
HEADER_FILES
}
)
target_link_libraries
(
spdlite spdlog::spdlog
)
add_subdirectory
(
example
)
lite-
example/CMakeLists.txt
→
spdlite/
example/CMakeLists.txt
View file @
f36be4d5
project
(
spdlog-lite-example CXX
)
find_package
(
Threads REQUIRED
)
project
(
spdlite-example CXX
)
set
(
LITE_SOURCES example.cpp create_logger.cpp
)
add_executable
(
${
PROJECT_NAME
}
${
LITE_SOURCES
}
)
include_directories
(
../lite
)
find_package
(
Threads
)
target_link_libraries
(
${
PROJECT_NAME
}
PRIVATE Threads::Threads
)
target_link_libraries
(
${
PROJECT_NAME
}
PRIVATE spdl
og_l
ite
)
target_link_libraries
(
${
PROJECT_NAME
}
PRIVATE spdlite
)
lite-
example/create_logger.cpp
→
spdlite/
example/create_logger.cpp
View file @
f36be4d5
// Copyright(c) 2015-present Gabi Melman.
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
#include "spdlite.h"
#include "spdlite
/spdlite
.h"
#include "spdlog/spdlog.h"
#include "spdlog/sinks/basic_file_sink.h"
...
...
lite-
example/example.cpp
→
spdlite/
example/example.cpp
View file @
f36be4d5
// Copyright(c) 2015-present Gabi Melman.
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
#include "spdlite
.h"
#include "spdlite
_global.h"
#define SPDLITE_ACTIVE_LEVEL SPDLITE_LEVEL_TRACE
#include "spdlite
_macros.h"
int
main
()
{
SPDLITE_TRACE
(
"SOME INFO {}"
,
123
);
// Copyright(c) 2015-present Gabi Melman.
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
#include "spdlite
/spdlite.h"
#include "spdlite
/spdlite_global.h"
#define SPDLITE_ACTIVE_LEVEL SPDLITE_LEVEL_TRACE
#include "spdlite
/spdlite_macros.h"
int
main
()
{
SPDLITE_TRACE
(
"SOME INFO {}"
,
123
);
}
\ No newline at end of file
lite/spdlite.h
→
spdlite/include/spd
lite/spdlite.h
View file @
f36be4d5
File moved
lite/spdlite_global.h
→
spdlite/include/spd
lite/spdlite_global.h
View file @
f36be4d5
File moved
lite/spdlite_macros.h
→
spdlite/include/spd
lite/spdlite_macros.h
View file @
f36be4d5
File moved
lite
/spdlite.cpp
→
spdlite/src
/spdlite.cpp
View file @
f36be4d5
//
// Copyright(c) 2019-present spdlog
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
//
#include "spdlite
.h"
#include "spdlog/spdlog.h"
static
spdlog
::
level
::
level_enum
to_spdlog_level
(
spdlite
::
level
level
)
{
return
static_cast
<
spdlog
::
level
::
level_enum
>
(
level
);
}
static
spdlite
::
level
to_lite_level
(
spdlog
::
level
::
level_enum
level
)
{
return
static_cast
<
spdlite
::
level
>
(
level
);
}
spdlite
::
logger
::
logger
(
std
::
shared_ptr
<
spdlog
::
logger
>
impl
)
{
impl_
=
std
::
move
(
impl
);
}
void
spdlite
::
logger
::
set_impl
(
std
::
shared_ptr
<
spdlog
::
logger
>
impl
)
{
impl_
=
std
::
move
(
impl
);
}
bool
spdlite
::
logger
::
should_log
(
spdlite
::
level
level
)
const
SPDLOG_NOEXCEPT
{
auto
spd_level
=
to_spdlog_level
(
level
);
return
impl_
->
should_log
(
spd_level
);
// TODO avoid the call using local level member?
}
void
spdlite
::
logger
::
log
(
spdlite
::
level
lvl
,
const
string_view_t
&
sv
)
{
auto
spd_level
=
to_spdlog_level
(
lvl
);
impl_
->
log
(
spd_level
,
sv
);
}
void
spdlite
::
logger
::
log_printf
(
spdlite
::
level
lvl
,
const
char
*
format
,
va_list
args
)
{
char
buffer
[
256
];
auto
size
=
vsnprintf
(
buffer
,
sizeof
(
buffer
),
format
,
args
);
if
(
size
<
0
)
{
size
=
snprintf
(
buffer
,
sizeof
(
buffer
),
"invalid format (%s)"
,
format
);
}
log
(
lvl
,
string_view_t
{
buffer
,
static_cast
<
size_t
>
(
size
)});
}
void
spdlite
::
logger
::
trace_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
trace
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
debug_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
debug
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
info_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
info
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
warn_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
warn
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
error_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
err
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
critical_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
critical
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
set_level
(
spdlite
::
level
level
)
noexcept
{
auto
spd_level
=
to_spdlog_level
(
level
);
impl_
->
set_level
(
spd_level
);
}
spdlite
::
level
spdlite
::
logger
::
level
()
const
noexcept
{
return
to_lite_level
(
impl_
->
level
());
}
std
::
string
spdlite
::
logger
::
name
()
const
noexcept
{
return
impl_
->
name
();
}
void
spdlite
::
logger
::
flush
()
{
impl_
->
flush
();
}
void
spdlite
::
logger
::
flush_on
(
spdlite
::
level
level
)
{
auto
spd_level
=
to_spdlog_level
(
level
);
impl_
->
flush_on
(
spd_level
);
}
spdlite
::
level
spdlite
::
logger
::
flush_level
()
const
noexcept
{
return
to_lite_level
(
impl_
->
flush_level
());
}
// pattern
void
spdlite
::
logger
::
set_pattern
(
std
::
string
pattern
)
noexcept
{
impl_
->
set_pattern
(
std
::
move
(
pattern
));
}
spdlite
::
logger
spdlite
::
logger
::
clone
(
std
::
string
logger_name
)
{
return
spdlite
::
logger
(
impl_
->
clone
(
std
::
move
(
logger_name
)));
}
void
spdlite
::
logger
::
log_formatted_
(
spdlite
::
level
lvl
,
const
fmt
::
memory_buffer
&
formatted
)
{
auto
spd_level
=
to_spdlog_level
(
lvl
);
impl_
->
log
(
spd_level
,
spdlog
::
details
::
fmt_helper
::
to_string_view
(
formatted
));
}
spdlite
::
logger
&
spdlite
::
logger
::
default_logger
()
{
static
spdlite
::
logger
default_inst_
=
spdlite
::
logger
(
spdlog
::
default_logger
());
return
default_inst_
;
}
//
// Copyright(c) 2019-present spdlog
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
//
#include "spdlite
/spdlite.h"
#include "spdlog/spdlog.h"
static
spdlog
::
level
::
level_enum
to_spdlog_level
(
spdlite
::
level
level
)
{
return
static_cast
<
spdlog
::
level
::
level_enum
>
(
level
);
}
static
spdlite
::
level
to_lite_level
(
spdlog
::
level
::
level_enum
level
)
{
return
static_cast
<
spdlite
::
level
>
(
level
);
}
spdlite
::
logger
::
logger
(
std
::
shared_ptr
<
spdlog
::
logger
>
impl
)
{
impl_
=
std
::
move
(
impl
);
}
void
spdlite
::
logger
::
set_impl
(
std
::
shared_ptr
<
spdlog
::
logger
>
impl
)
{
impl_
=
std
::
move
(
impl
);
}
bool
spdlite
::
logger
::
should_log
(
spdlite
::
level
level
)
const
SPDLOG_NOEXCEPT
{
auto
spd_level
=
to_spdlog_level
(
level
);
return
impl_
->
should_log
(
spd_level
);
// TODO avoid the call using local level member?
}
void
spdlite
::
logger
::
log
(
spdlite
::
level
lvl
,
const
string_view_t
&
sv
)
{
auto
spd_level
=
to_spdlog_level
(
lvl
);
impl_
->
log
(
spd_level
,
sv
);
}
void
spdlite
::
logger
::
log_printf
(
spdlite
::
level
lvl
,
const
char
*
format
,
va_list
args
)
{
char
buffer
[
256
];
auto
size
=
vsnprintf
(
buffer
,
sizeof
(
buffer
),
format
,
args
);
if
(
size
<
0
)
{
size
=
snprintf
(
buffer
,
sizeof
(
buffer
),
"invalid format (%s)"
,
format
);
}
log
(
lvl
,
string_view_t
{
buffer
,
static_cast
<
size_t
>
(
size
)});
}
void
spdlite
::
logger
::
trace_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
trace
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
debug_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
debug
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
info_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
info
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
warn_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
warn
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
error_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
err
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
critical_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
spdlite
::
level
::
critical
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
logger
::
set_level
(
spdlite
::
level
level
)
noexcept
{
auto
spd_level
=
to_spdlog_level
(
level
);
impl_
->
set_level
(
spd_level
);
}
spdlite
::
level
spdlite
::
logger
::
level
()
const
noexcept
{
return
to_lite_level
(
impl_
->
level
());
}
std
::
string
spdlite
::
logger
::
name
()
const
noexcept
{
return
impl_
->
name
();
}
void
spdlite
::
logger
::
flush
()
{
impl_
->
flush
();
}
void
spdlite
::
logger
::
flush_on
(
spdlite
::
level
level
)
{
auto
spd_level
=
to_spdlog_level
(
level
);
impl_
->
flush_on
(
spd_level
);
}
spdlite
::
level
spdlite
::
logger
::
flush_level
()
const
noexcept
{
return
to_lite_level
(
impl_
->
flush_level
());
}
// pattern
void
spdlite
::
logger
::
set_pattern
(
std
::
string
pattern
)
noexcept
{
impl_
->
set_pattern
(
std
::
move
(
pattern
));
}
spdlite
::
logger
spdlite
::
logger
::
clone
(
std
::
string
logger_name
)
{
return
spdlite
::
logger
(
impl_
->
clone
(
std
::
move
(
logger_name
)));
}
void
spdlite
::
logger
::
log_formatted_
(
spdlite
::
level
lvl
,
const
fmt
::
memory_buffer
&
formatted
)
{
auto
spd_level
=
to_spdlog_level
(
lvl
);
impl_
->
log
(
spd_level
,
spdlog
::
details
::
fmt_helper
::
to_string_view
(
formatted
));
}
spdlite
::
logger
&
spdlite
::
logger
::
default_logger
()
{
static
spdlite
::
logger
default_inst_
=
spdlite
::
logger
(
spdlog
::
default_logger
());
return
default_inst_
;
}
lite
/spdlite_global.cpp
→
spdlite/src
/spdlite_global.cpp
View file @
f36be4d5
// Copyright(c) 2015-present Gabi Melman.
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
#include "spdlite
_global.h"
spdlite
::
logger
&
spdlite
::
default_logger
()
{
return
spdlite
::
logger
::
default_logger
();
}
// printf
void
spdlite
::
log_printf
(
spdlite
::
level
lvl
,
const
char
*
format
,
va_list
args
)
{
default_logger
().
log_printf
(
lvl
,
format
,
args
);
}
void
spdlite
::
trace_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
trace
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
debug_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
debug
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
info_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
info
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
warn_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
warn
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
error_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
err
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
critical_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
critical
,
format
,
args
);
va_end
(
args
);
// Copyright(c) 2015-present Gabi Melman.
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
#include "spdlite
/spdlite_global.h"
spdlite
::
logger
&
spdlite
::
default_logger
()
{
return
spdlite
::
logger
::
default_logger
();
}
// printf
void
spdlite
::
log_printf
(
spdlite
::
level
lvl
,
const
char
*
format
,
va_list
args
)
{
default_logger
().
log_printf
(
lvl
,
format
,
args
);
}
void
spdlite
::
trace_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
trace
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
debug_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
debug
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
info_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
info
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
warn_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
warn
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
error_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
err
,
format
,
args
);
va_end
(
args
);
}
void
spdlite
::
critical_printf
(
const
char
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
log_printf
(
level
::
critical
,
format
,
args
);
va_end
(
args
);
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment