Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
spdlog
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
spdlog
Commits
231ca507
Commit
231ca507
authored
Sep 26, 2020
by
gabime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clang-format
parent
c7613f3e
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
143 additions
and
143 deletions
+143
-143
CMakeLists.txt
CMakeLists.txt
+79
-79
bench/async_bench.cpp
bench/async_bench.cpp
+1
-1
include/spdlog/async.h
include/spdlog/async.h
+3
-3
include/spdlog/common.h
include/spdlog/common.h
+1
-1
include/spdlog/details/synchronous_factory.h
include/spdlog/details/synchronous_factory.h
+1
-1
include/spdlog/logger.h
include/spdlog/logger.h
+11
-11
include/spdlog/pattern_formatter.h
include/spdlog/pattern_formatter.h
+1
-1
include/spdlog/spdlog.h
include/spdlog/spdlog.h
+9
-9
tests/CMakeLists.txt
tests/CMakeLists.txt
+36
-36
tests/test_pattern_formatter.cpp
tests/test_pattern_formatter.cpp
+1
-1
No files found.
CMakeLists.txt
View file @
231ca507
...
...
@@ -18,35 +18,35 @@ include(GNUInstallDirs)
# ---------------------------------------------------------------------------------------
# Set default build to release
# ---------------------------------------------------------------------------------------
if
(
NOT CMAKE_BUILD_TYPE
)
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE
"Release"
CACHE STRING
"Choose Release or Debug"
FORCE
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Compiler config
# ---------------------------------------------------------------------------------------
if
(
NOT CMAKE_CXX_STANDARD
)
if
(
NOT CMAKE_CXX_STANDARD
)
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
endif
()
endif
()
set
(
CMAKE_CXX_EXTENSIONS OFF
)
if
(
CMAKE_SYSTEM_NAME MATCHES
"CYGWIN"
OR CMAKE_SYSTEM_NAME MATCHES
"MSYS"
)
if
(
CMAKE_SYSTEM_NAME MATCHES
"CYGWIN"
OR CMAKE_SYSTEM_NAME MATCHES
"MSYS"
)
set
(
CMAKE_CXX_EXTENSIONS ON
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Set SPDLOG_MASTER_PROJECT to ON if we are building spdlog
# ---------------------------------------------------------------------------------------
# Check if spdlog is being used directly or via add_subdirectory, but allow overriding
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
set
(
SPDLOG_MASTER_PROJECT ON
)
else
()
else
()
set
(
SPDLOG_MASTER_PROJECT OFF
)
endif
()
endif
()
endif
()
endif
()
option
(
SPDLOG_BUILD_ALL
"Build all artifacts"
OFF
)
...
...
@@ -79,19 +79,19 @@ option(SPDLOG_FMT_EXTERNAL "Use external fmt library instead of bundled" OFF)
option
(
SPDLOG_FMT_EXTERNAL_HO
"Use external fmt header-only library instead of bundled"
OFF
)
option
(
SPDLOG_NO_EXCEPTIONS
"Compile with -fno-exceptions. Call abort() on any spdlog exceptions"
OFF
)
if
(
SPDLOG_FMT_EXTERNAL AND SPDLOG_FMT_EXTERNAL_HO
)
if
(
SPDLOG_FMT_EXTERNAL AND SPDLOG_FMT_EXTERNAL_HO
)
message
(
FATAL_ERROR
"SPDLOG_FMT_EXTERNAL and SPDLOG_FMT_EXTERNAL_HO are mutually exclusive"
)
endif
()
endif
()
# misc tweakme options
if
(
WIN32
)
if
(
WIN32
)
option
(
SPDLOG_WCHAR_SUPPORT
"Support wchar api"
OFF
)
option
(
SPDLOG_WCHAR_FILENAMES
"Support wchar filenames"
OFF
)
endif
()
if
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"Linux"
)
endif
()
if
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"Linux"
)
option
(
SPDLOG_CLOCK_COARSE
"Use the much faster (but much less accurate) CLOCK_REALTIME_COARSE instead of the regular clock,"
OFF
)
endif
()
endif
()
option
(
SPDLOG_PREVENT_CHILD_FD
"Prevent from child processes to inherit log file descriptors"
OFF
)
option
(
SPDLOG_NO_THREAD_ID
"prevent spdlog from querying the thread id on each log call if thread id is not needed"
OFF
)
...
...
@@ -102,15 +102,15 @@ option(
OFF
)
# clang-tidy
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"3.5"
)
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"3.5"
)
option
(
SPDLOG_TIDY
"run clang-tidy"
OFF
)
endif
()
endif
()
if
(
SPDLOG_TIDY
)
if
(
SPDLOG_TIDY
)
set
(
CMAKE_CXX_CLANG_TIDY
"clang-tidy"
)
set
(
CMAKE_EXPORT_COMPILE_COMMANDS ON
)
message
(
STATUS
"Enabled clang-tidy"
)
endif
()
endif
()
find_package
(
Threads REQUIRED
)
message
(
STATUS
"Build type: "
${
CMAKE_BUILD_TYPE
}
)
...
...
@@ -119,26 +119,26 @@ message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
# ---------------------------------------------------------------------------------------
set
(
SPDLOG_SRCS src/spdlog.cpp src/stdout_sinks.cpp src/color_sinks.cpp src/file_sinks.cpp src/async.cpp src/cfg.cpp
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
list
(
APPEND SPDLOG_SRCS src/fmt.cpp
)
endif
()
endif
()
if
(
SPDLOG_BUILD_SHARED
)
if
(
WIN32
)
if
(
SPDLOG_BUILD_SHARED
)
if
(
WIN32
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/version.rc.in
${
CMAKE_CURRENT_BINARY_DIR
}
/version.rc @ONLY
)
list
(
APPEND SPDLOG_SRCS
${
CMAKE_CURRENT_BINARY_DIR
}
/version.rc
)
endif
()
endif
()
add_library
(
spdlog SHARED
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_SHARED_LIB
)
if
(
MSVC
)
if
(
MSVC
)
target_compile_options
(
spdlog PUBLIC /wd4251 /wd4275
)
endif
()
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
endif
()
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
target_compile_definitions
(
spdlog PRIVATE FMT_EXPORT PUBLIC FMT_SHARED
)
endif
()
else
()
endif
()
else
()
add_library
(
spdlog STATIC
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
endif
()
endif
()
add_library
(
spdlog::spdlog ALIAS spdlog
)
...
...
@@ -151,10 +151,10 @@ spdlog_enable_warnings(spdlog)
set_target_properties
(
spdlog PROPERTIES VERSION
${
SPDLOG_VERSION
}
SOVERSION
${
SPDLOG_VERSION_MAJOR
}
)
set_target_properties
(
spdlog PROPERTIES DEBUG_POSTFIX d
)
if
(
COMMAND target_precompile_headers AND SPDLOG_ENABLE_PCH
)
if
(
COMMAND target_precompile_headers AND SPDLOG_ENABLE_PCH
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/pch.h.in
${
PROJECT_BINARY_DIR
}
/spdlog_pch.h @ONLY
)
target_precompile_headers
(
spdlog PRIVATE
${
PROJECT_BINARY_DIR
}
/spdlog_pch.h
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Header only version
...
...
@@ -169,30 +169,30 @@ target_link_libraries(spdlog_header_only INTERFACE Threads::Threads)
# ---------------------------------------------------------------------------------------
# Use fmt package if using external fmt
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT TARGET fmt::fmt
)
if
(
SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT TARGET fmt::fmt
)
find_package
(
fmt 5.3.0 REQUIRED
)
endif
()
endif
()
target_compile_definitions
(
spdlog PUBLIC SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog_header_only INTERFACE SPDLOG_FMT_EXTERNAL
)
# use external fmt-header-nly
if
(
SPDLOG_FMT_EXTERNAL_HO
)
if
(
SPDLOG_FMT_EXTERNAL_HO
)
target_link_libraries
(
spdlog PUBLIC fmt::fmt-header-only
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt-header-only
)
else
()
# use external compile fmt
else
()
# use external compile fmt
target_link_libraries
(
spdlog PUBLIC fmt::fmt
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt
)
endif
()
endif
()
set
(
PKG_CONFIG_REQUIRES fmt
)
# add dependency to pkg-config
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Misc definitions according to tweak options
# ---------------------------------------------------------------------------------------
set
(
SPDLOG_WCHAR_TO_UTF8_SUPPORT
${
SPDLOG_WCHAR_SUPPORT
}
)
foreach
(
foreach
(
SPDLOG_OPTION
SPDLOG_WCHAR_TO_UTF8_SUPPORT
SPDLOG_WCHAR_FILENAMES
...
...
@@ -202,43 +202,43 @@ foreach (
SPDLOG_NO_THREAD_ID
SPDLOG_NO_TLS
SPDLOG_NO_ATOMIC_LEVELS
)
if
(
${
SPDLOG_OPTION
}
)
if
(
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog PUBLIC
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog_header_only INTERFACE
${
SPDLOG_OPTION
}
)
endif
()
endforeach
()
endif
()
endforeach
()
if
(
SPDLOG_NO_EXCEPTIONS AND NOT MSVC
)
if
(
SPDLOG_NO_EXCEPTIONS AND NOT MSVC
)
target_compile_options
(
spdlog PRIVATE -fno-exceptions
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Build binaries
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_BUILD_EXAMPLE OR SPDLOG_BUILD_EXAMPLE_HO OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_EXAMPLE OR SPDLOG_BUILD_EXAMPLE_HO OR SPDLOG_BUILD_ALL
)
message
(
STATUS
"Generating example(s)"
)
add_subdirectory
(
example
)
spdlog_enable_warnings
(
example
)
if
(
SPDLOG_BUILD_EXAMPLE_HO
)
if
(
SPDLOG_BUILD_EXAMPLE_HO
)
spdlog_enable_warnings
(
example_header_only
)
endif
()
endif
()
endif
()
endif
()
if
(
SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_TESTS_HO OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_TESTS_HO OR SPDLOG_BUILD_ALL
)
message
(
STATUS
"Generating tests"
)
enable_testing
()
add_subdirectory
(
tests
)
endif
()
endif
()
if
(
SPDLOG_BUILD_BENCH OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_BENCH OR SPDLOG_BUILD_ALL
)
message
(
STATUS
"Generating benchmarks"
)
add_subdirectory
(
bench
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Install
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_INSTALL
)
if
(
SPDLOG_INSTALL
)
message
(
STATUS
"Generating install"
)
set
(
project_config_in
"
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/spdlogConfig.cmake.in"
)
set
(
project_config_out
"
${
CMAKE_CURRENT_BINARY_DIR
}
/spdlogConfig.cmake"
)
...
...
@@ -259,10 +259,10 @@ if (SPDLOG_INSTALL)
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
install
(
DIRECTORY include/
${
PROJECT_NAME
}
/fmt/bundled/
DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
/fmt/bundled/"
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Install pkg-config file
...
...
@@ -288,4 +288,4 @@ if (SPDLOG_INSTALL)
# Support creation of installable packages
# ---------------------------------------------------------------------------------------
include
(
cmake/spdlogCPack.cmake
)
endif
()
endif
()
bench/async_bench.cpp
View file @
231ca507
include/spdlog/async.h
View file @
231ca507
...
...
@@ -35,7 +35,7 @@ template<async_overflow_policy OverflowPolicy = async_overflow_policy::block>
struct
async_factory_impl
{
template
<
typename
Sink
,
typename
...
SinkArgs
>
static
std
::
shared_ptr
<
async_logger
>
create
(
std
::
string
logger_name
,
SinkArgs
&&
...
args
)
static
std
::
shared_ptr
<
async_logger
>
create
(
std
::
string
logger_name
,
SinkArgs
&&
...
args
)
{
auto
&
registry_inst
=
details
::
registry
::
instance
();
...
...
@@ -61,13 +61,13 @@ using async_factory = async_factory_impl<async_overflow_policy::block>;
using
async_factory_nonblock
=
async_factory_impl
<
async_overflow_policy
::
overrun_oldest
>
;
template
<
typename
Sink
,
typename
...
SinkArgs
>
inline
std
::
shared_ptr
<
spdlog
::
logger
>
create_async
(
std
::
string
logger_name
,
SinkArgs
&&
...
sink_args
)
inline
std
::
shared_ptr
<
spdlog
::
logger
>
create_async
(
std
::
string
logger_name
,
SinkArgs
&&
...
sink_args
)
{
return
async_factory
::
create
<
Sink
>
(
std
::
move
(
logger_name
),
std
::
forward
<
SinkArgs
>
(
sink_args
)...);
}
template
<
typename
Sink
,
typename
...
SinkArgs
>
inline
std
::
shared_ptr
<
spdlog
::
logger
>
create_async_nb
(
std
::
string
logger_name
,
SinkArgs
&&
...
sink_args
)
inline
std
::
shared_ptr
<
spdlog
::
logger
>
create_async_nb
(
std
::
string
logger_name
,
SinkArgs
&&
...
sink_args
)
{
return
async_factory_nonblock
::
create
<
Sink
>
(
std
::
move
(
logger_name
),
std
::
forward
<
SinkArgs
>
(
sink_args
)...);
}
...
...
include/spdlog/common.h
View file @
231ca507
...
...
@@ -231,7 +231,7 @@ namespace details {
using
std
::
make_unique
;
#else
template
<
typename
T
,
typename
...
Args
>
std
::
unique_ptr
<
T
>
make_unique
(
Args
&&
...
args
)
std
::
unique_ptr
<
T
>
make_unique
(
Args
&&
...
args
)
{
static_assert
(
!
std
::
is_array
<
T
>::
value
,
"arrays not supported"
);
return
std
::
unique_ptr
<
T
>
(
new
T
(
std
::
forward
<
Args
>
(
args
)...));
...
...
include/spdlog/details/synchronous_factory.h
View file @
231ca507
...
...
@@ -13,7 +13,7 @@ class logger;
struct
synchronous_factory
{
template
<
typename
Sink
,
typename
...
SinkArgs
>
static
std
::
shared_ptr
<
spdlog
::
logger
>
create
(
std
::
string
logger_name
,
SinkArgs
&&
...
args
)
static
std
::
shared_ptr
<
spdlog
::
logger
>
create
(
std
::
string
logger_name
,
SinkArgs
&&
...
args
)
{
auto
sink
=
std
::
make_shared
<
Sink
>
(
std
::
forward
<
SinkArgs
>
(
args
)...);
auto
new_logger
=
std
::
make_shared
<
spdlog
::
logger
>
(
std
::
move
(
logger_name
),
std
::
move
(
sink
));
...
...
include/spdlog/logger.h
View file @
231ca507
...
...
@@ -75,56 +75,56 @@ public:
// FormatString is a type derived from fmt::compile_string
template
<
typename
FormatString
,
typename
std
::
enable_if
<
fmt
::
is_compile_string
<
FormatString
>
::
value
,
int
>::
type
=
0
,
typename
...
Args
>
void
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log_
(
loc
,
lvl
,
fmt
,
args
...);
}
// FormatString is NOT a type derived from fmt::compile_string but is a string_view_t or can be implicitly converted to one
template
<
typename
...
Args
>
void
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
string_view_t
fmt
,
const
Args
&
...
args
)
void
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
string_view_t
fmt
,
const
Args
&
...
args
)
{
log_
(
loc
,
lvl
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
log
(
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
log
(
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
source_loc
{},
lvl
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
trace
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
trace
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
level
::
trace
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
debug
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
debug
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
level
::
debug
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
info
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
info
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
level
::
info
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
warn
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
warn
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
level
::
warn
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
error
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
error
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
level
::
err
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
void
critical
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
critical
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
log
(
level
::
critical
,
fmt
,
args
...);
}
...
...
@@ -225,7 +225,7 @@ public:
#else
template
<
typename
...
Args
>
void
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
wstring_view_t
fmt
,
const
Args
&
...
args
)
void
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
wstring_view_t
fmt
,
const
Args
&
...
args
)
{
bool
log_enabled
=
should_log
(
lvl
);
bool
traceback_enabled
=
tracer_
.
enabled
();
...
...
@@ -326,7 +326,7 @@ protected:
// common implementation for after templated public api has been resolved
template
<
typename
FormatString
,
typename
...
Args
>
void
log_
(
source_loc
loc
,
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
void
log_
(
source_loc
loc
,
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
bool
log_enabled
=
should_log
(
lvl
);
bool
traceback_enabled
=
tracer_
.
enabled
();
...
...
include/spdlog/pattern_formatter.h
View file @
231ca507
...
...
@@ -92,7 +92,7 @@ public:
void
format
(
const
details
::
log_msg
&
msg
,
memory_buf_t
&
dest
)
override
;
template
<
typename
T
,
typename
...
Args
>
pattern_formatter
&
add_flag
(
char
flag
,
const
Args
&
...
args
)
pattern_formatter
&
add_flag
(
char
flag
,
const
Args
&
...
args
)
{
custom_handlers_
[
flag
]
=
details
::
make_unique
<
T
>
(
args
...);
return
*
this
;
...
...
include/spdlog/spdlog.h
View file @
231ca507
...
...
@@ -31,7 +31,7 @@ using default_factory = synchronous_factory;
// Example:
// spdlog::create<daily_file_sink_st>("logger_name", "dailylog_filename", 11, 59);
template
<
typename
Sink
,
typename
...
SinkArgs
>
inline
std
::
shared_ptr
<
spdlog
::
logger
>
create
(
std
::
string
logger_name
,
SinkArgs
&&
...
sink_args
)
inline
std
::
shared_ptr
<
spdlog
::
logger
>
create
(
std
::
string
logger_name
,
SinkArgs
&&
...
sink_args
)
{
return
default_factory
::
create
<
Sink
>
(
std
::
move
(
logger_name
),
std
::
forward
<
SinkArgs
>
(
sink_args
)...);
}
...
...
@@ -128,49 +128,49 @@ SPDLOG_API spdlog::logger *default_logger_raw();
SPDLOG_API
void
set_default_logger
(
std
::
shared_ptr
<
spdlog
::
logger
>
default_logger
);
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
log
(
source_loc
source
,
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
log
(
source_loc
source
,
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
log
(
source
,
lvl
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
log
(
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
log
(
level
::
level_enum
lvl
,
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
log
(
source_loc
{},
lvl
,
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
trace
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
trace
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
trace
(
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
debug
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
debug
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
debug
(
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
info
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
info
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
info
(
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
warn
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
warn
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
warn
(
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
error
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
error
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
error
(
fmt
,
args
...);
}
template
<
typename
FormatString
,
typename
...
Args
>
inline
void
critical
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
inline
void
critical
(
const
FormatString
&
fmt
,
const
Args
&
...
args
)
{
default_logger_raw
()
->
critical
(
fmt
,
args
...);
}
...
...
tests/CMakeLists.txt
View file @
231ca507
cmake_minimum_required
(
VERSION 3.10
)
project
(
spdlog_utests CXX
)
if
(
NOT TARGET spdlog
)
if
(
NOT TARGET spdlog
)
# Stand-alone build
find_package
(
spdlog REQUIRED
)
endif
()
endif
()
include
(
../cmake/utils.cmake
)
find_package
(
PkgConfig
)
if
(
PkgConfig_FOUND
)
if
(
PkgConfig_FOUND
)
pkg_check_modules
(
systemd libsystemd
)
endif
()
endif
()
set
(
SPDLOG_UTESTS_SOURCES
test_file_helper.cpp
...
...
@@ -35,13 +35,13 @@ set(SPDLOG_UTESTS_SOURCES
test_time_point.cpp
test_stopwatch.cpp
)
if
(
NOT SPDLOG_NO_EXCEPTIONS
)
if
(
NOT SPDLOG_NO_EXCEPTIONS
)
list
(
APPEND SPDLOG_UTESTS_SOURCES test_errors.cpp
)
endif
()
endif
()
if
(
systemd_FOUND
)
if
(
systemd_FOUND
)
list
(
APPEND SPDLOG_UTESTS_SOURCES test_systemd.cpp
)
endif
()
endif
()
enable_testing
()
...
...
@@ -49,22 +49,22 @@ function(spdlog_prepare_test test_target spdlog_lib)
add_executable
(
${
test_target
}
${
SPDLOG_UTESTS_SOURCES
}
)
spdlog_enable_warnings
(
${
test_target
}
)
target_link_libraries
(
${
test_target
}
PRIVATE
${
spdlog_lib
}
)
if
(
systemd_FOUND
)
if
(
systemd_FOUND
)
target_link_libraries
(
${
test_target
}
PRIVATE
${
systemd_LIBRARIES
}
)
endif
()
if
(
SPDLOG_SANITIZE_ADDRESS
)
endif
()
if
(
SPDLOG_SANITIZE_ADDRESS
)
spdlog_enable_sanitizer
(
${
test_target
}
)
endif
()
endif
()
add_test
(
NAME
${
test_target
}
COMMAND
${
test_target
}
)
set_tests_properties
(
${
test_target
}
PROPERTIES RUN_SERIAL ON
)
endfunction
()
# The compiled library tests
if
(
SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_ALL
)
spdlog_prepare_test
(
spdlog-utests spdlog::spdlog
)
endif
()
endif
()
# The header-only library version tests
if
(
SPDLOG_BUILD_TESTS_HO OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_TESTS_HO OR SPDLOG_BUILD_ALL
)
spdlog_prepare_test
(
spdlog-utests-ho spdlog::spdlog_header_only
)
endif
()
endif
()
tests/test_pattern_formatter.cpp
View file @
231ca507
...
...
@@ -5,7 +5,7 @@ using spdlog::memory_buf_t;
// log to str and return it
template
<
typename
...
Args
>
static
std
::
string
log_to_str
(
const
std
::
string
&
msg
,
const
Args
&
...
args
)
static
std
::
string
log_to_str
(
const
std
::
string
&
msg
,
const
Args
&
...
args
)
{
std
::
ostringstream
oss
;
auto
oss_sink
=
std
::
make_shared
<
spdlog
::
sinks
::
ostream_sink_mt
>
(
oss
);
...
...
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