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
2124b7bf
Commit
2124b7bf
authored
Jan 08, 2019
by
possiblyhuman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow filename/line number at all levels. Add function name %! support.
parent
5b273a33
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
9 deletions
+69
-9
include/spdlog/common.h
include/spdlog/common.h
+6
-3
include/spdlog/details/pattern_formatter.h
include/spdlog/details/pattern_formatter.h
+24
-0
include/spdlog/spdlog.h
include/spdlog/spdlog.h
+16
-6
include/spdlog/tweakme.h
include/spdlog/tweakme.h
+23
-0
No files found.
include/spdlog/common.h
View file @
2124b7bf
...
...
@@ -52,8 +52,8 @@
#endif
// Get the basename of __FILE__ (at compile time if possible)
#if FMT_HAS_FEATURE(__builtin_strrchr)
// Get the basename of __FILE__ (at compile time if possible)
#if FMT_HAS_FEATURE(__builtin_strrchr)
#define SPDLOG_STRRCHR(str, sep) __builtin_strrchr(str, sep)
#else
#define SPDLOG_STRRCHR(str, sep) strrchr(str, sep)
...
...
@@ -204,11 +204,13 @@ struct source_loc
SPDLOG_CONSTEXPR
source_loc
()
:
filename
{
""
}
,
line
{
0
}
,
funcname
{
""
}
{
}
SPDLOG_CONSTEXPR
source_loc
(
const
char
*
filename
,
int
line
)
SPDLOG_CONSTEXPR
source_loc
(
const
char
*
filename
,
int
line
,
const
char
*
funcname
)
:
filename
{
filename
}
,
line
{
static_cast
<
uint32_t
>
(
line
)}
,
funcname
{
funcname
}
{
}
...
...
@@ -218,6 +220,7 @@ struct source_loc
}
const
char
*
filename
;
uint32_t
line
;
const
char
*
funcname
;
};
namespace
details
{
...
...
include/spdlog/details/pattern_formatter.h
View file @
2124b7bf
...
...
@@ -895,6 +895,26 @@ public:
}
}
};
// print source funcname
class
source_funcname_formatter
final
:
public
flag_formatter
{
public:
explicit
source_funcname_formatter
(
padding_info
padinfo
)
:
flag_formatter
(
padinfo
){};
void
format
(
const
details
::
log_msg
&
msg
,
const
std
::
tm
&
,
fmt
::
memory_buffer
&
dest
)
override
{
if
(
msg
.
source
.
empty
())
{
return
;
}
scoped_pad
p
(
msg
.
source
.
funcname
,
padinfo_
,
dest
);
fmt_helper
::
append_string_view
(
msg
.
source
.
funcname
,
dest
);
#ifdef SPDLOG_FUNCTION_SUFFIX
fmt_helper
::
append_string_view
(
SPDLOG_FUNCTION_SUFFIX
,
dest
);
#endif
}
};
// Full info formatter
// pattern: [%Y-%m-%d %H:%M:%S.%e] [%n] [%l] %v
...
...
@@ -1216,6 +1236,10 @@ private:
formatters_
.
push_back
(
details
::
make_unique
<
details
::
source_linenum_formatter
>
(
padding
));
break
;
case
(
'!'
):
// source funcname
formatters_
.
push_back
(
details
::
make_unique
<
details
::
source_funcname_formatter
>
(
padding
));
break
;
case
(
'%'
):
// % char
formatters_
.
push_back
(
details
::
make_unique
<
details
::
ch_formatter
>
(
'%'
));
break
;
...
...
include/spdlog/spdlog.h
View file @
2124b7bf
...
...
@@ -313,10 +313,20 @@ inline void critical(const wchar_t *fmt, const Args &... args)
// SPDLOG_LEVEL_OFF
//
#ifndef SPDLOG_FUNCTION
#define SPDLOG_FUNCTION __FUNCTION__
#endif
#ifdef SPDLOG_SOURCE_MACROS_ON
#define SPDLOG_LOG_MACRO(...) log(spdlog::source_loc{SPDLOG_FILE_BASENAME(__FILE__), __LINE__, SPDLOG_FUNCTION}, __VA_ARGS__)
#else
#define SPDLOG_LOG_MACRO(...) log(__VA_ARGS__)
#endif
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE
#define SPDLOG_LOGGER_TRACE(logger, ...)\
if(logger->should_log(spdlog::level::trace))\
logger->
log(spdlog::source_loc{SPDLOG_FILE_BASENAME(__FILE__), __LINE__},
spdlog::level::trace, __VA_ARGS__)
logger->
SPDLOG_LOG_MACRO(
spdlog::level::trace, __VA_ARGS__)
#define SPDLOG_TRACE(...) SPDLOG_LOGGER_TRACE(spdlog::default_logger_raw(), __VA_ARGS__)
#else
#define SPDLOG_LOGGER_TRACE(logger, ...) (void)0
...
...
@@ -324,7 +334,7 @@ inline void critical(const wchar_t *fmt, const Args &... args)
#endif
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_DEBUG
#define SPDLOG_LOGGER_DEBUG(logger, ...) logger->
log
(spdlog::level::debug, __VA_ARGS__)
#define SPDLOG_LOGGER_DEBUG(logger, ...) logger->
SPDLOG_LOG_MACRO
(spdlog::level::debug, __VA_ARGS__)
#define SPDLOG_DEBUG(...) SPDLOG_LOGGER_DEBUG(spdlog::default_logger_raw(), __VA_ARGS__)
#else
#define SPDLOG_LOGGER_DEBUG(logger, ...) (void)0
...
...
@@ -332,7 +342,7 @@ inline void critical(const wchar_t *fmt, const Args &... args)
#endif
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_INFO
#define SPDLOG_LOGGER_INFO(logger, ...) logger->
log
(spdlog::level::info, __VA_ARGS__)
#define SPDLOG_LOGGER_INFO(logger, ...) logger->
SPDLOG_LOG_MACRO
(spdlog::level::info, __VA_ARGS__)
#define SPDLOG_INFO(...) SPDLOG_LOGGER_INFO(spdlog::default_logger_raw(), __VA_ARGS__)
#else
#define SPDLOG_LOGGER_INFO(logger, ...) (void)0
...
...
@@ -340,7 +350,7 @@ inline void critical(const wchar_t *fmt, const Args &... args)
#endif
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_WARN
#define SPDLOG_LOGGER_WARN(logger, ...) logger->
log
(spdlog::level::warn, __VA_ARGS__)
#define SPDLOG_LOGGER_WARN(logger, ...) logger->
SPDLOG_LOG_MACRO
(spdlog::level::warn, __VA_ARGS__)
#define SPDLOG_WARN(...) SPDLOG_LOGGER_WARN(spdlog::default_logger_raw(), __VA_ARGS__)
#else
#define SPDLOG_LOGGER_WARN(logger, ...) (void)0
...
...
@@ -348,7 +358,7 @@ inline void critical(const wchar_t *fmt, const Args &... args)
#endif
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_ERROR
#define SPDLOG_LOGGER_ERROR(logger, ...) logger->
log
(spdlog::level::err, __VA_ARGS__)
#define SPDLOG_LOGGER_ERROR(logger, ...) logger->
SPDLOG_LOG_MACRO
(spdlog::level::err, __VA_ARGS__)
#define SPDLOG_ERROR(...) SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__)
#else
#define SPDLOG_LOGGER_ERROR(logger, ...) (void)0
...
...
@@ -356,7 +366,7 @@ inline void critical(const wchar_t *fmt, const Args &... args)
#endif
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_CRITICAL
#define SPDLOG_LOGGER_CRITICAL(logger, ...) logger->
log
(spdlog::level::critical, __VA_ARGS__)
#define SPDLOG_LOGGER_CRITICAL(logger, ...) logger->
SPDLOG_LOG_MACRO
(spdlog::level::critical, __VA_ARGS__)
#define SPDLOG_CRITICAL(...) SPDLOG_LOGGER_CRITICAL(spdlog::default_logger_raw(), __VA_ARGS__)
#else
#define SPDLOG_LOGGER_CRITICAL(logger, ...) (void)0
...
...
include/spdlog/tweakme.h
View file @
2124b7bf
...
...
@@ -133,4 +133,27 @@
// Macros like SPDLOG_DEBUG(..), SPDLOG_INFO(..) will expand to empty statements if not enabled
//
// #define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to enable file name, file number and function name macros.
// Used in macros like SPDLOG_DEBUG(..), SPDLOG_INFO(..) etc
//
// #define SPDLOG_SOURCE_MACROS_ON
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment (and change if desired) macro to use for function names.
// This is compiler dependent.
// __PRETTY_FUNCTION__ might be nicer in clang/gcc, and __FUNCTION__ in msvc.
// Defaults to __FUNCTION__ (should work on all compilers) if not defined.
//
// #define SPDLOG_FUNCTION __PRETTY_FUNCTION__
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment (and change if desired) string to add to the end of functions names.
// Used in macros like SPDLOG_DEBUG(..), SPDLOG_INFO(..) etc
//
// #define SPDLOG_FUNCTION_SUFFIX "()"
///////////////////////////////////////////////////////////////////////////////
\ 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