Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/app/fddev/dev1.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ agave_main( void * args );

extern char fd_log_private_path[ 1024 ]; /* empty string on start */

#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)

extern int * fd_log_private_shared_lock;

Expand Down
2 changes: 1 addition & 1 deletion src/app/shared/commands/run/run.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ extern char fd_log_private_path[ 1024 ]; /* empty string on start */

static pid_t pid_namespace;

#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)

extern int * fd_log_private_shared_lock;

Expand Down
2 changes: 1 addition & 1 deletion src/app/shared_dev/commands/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ dev_cmd_perm( args_t * args,
pid_t firedancer_pid, watch_pid;
extern char fd_log_private_path[ 1024 ]; /* empty string on start */

#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)

extern int fd_log_private_restore_stderr;
extern int * fd_log_private_shared_lock;
Expand Down
6 changes: 4 additions & 2 deletions src/disco/keyguard/fd_keyguard_proofs.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
void
fd_log_private_1( int level,
long now,
char const * file,
char const * path,
char const * file_name,
int line,
char const * func,
char const * msg ) {}
Expand All @@ -19,7 +20,8 @@ fd_log_private_1( int level,
void
fd_log_private_2( int level,
long now,
char const * file,
char const * path,
char const * file_name,
int line,
char const * func,
char const * msg ) __attribute__((noreturn)) {
Expand Down
16 changes: 9 additions & 7 deletions src/util/log/fd_log.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,7 +769,8 @@ fd_log_private_hexdump_msg( char const * descr,
void
fd_log_private_1( int level,
long now,
char const * file,
char const * path,
char const * file_name,
int line,
char const * func,
char const * msg ) {
Expand Down Expand Up @@ -797,7 +798,7 @@ fd_log_private_1( int level,
a previous log message */

ulong hash = fd_cstr_hash_append( fd_cstr_hash_append( fd_cstr_hash_append( fd_ulong_hash(
(ulong)(8L*(long)line+(long)level) ), file ), func ), msg );
(ulong)(8L*(long)line+(long)level) ), path ), func ), msg );

static long const dedup_interval = 20000000L; /* 1/50 s */

Expand Down Expand Up @@ -894,7 +895,7 @@ fd_log_private_1( int level,
if( to_logfile )
fd_log_private_fprintf_0( log_fileno, "%s %s %6lu:%-6lu %s:%s:%-4s %s:%s:%-4s %s(%i)[%s]: %s\n",
level_cstr[level], now_cstr, fd_log_group_id(),tid, fd_log_user(),fd_log_host(),cpu,
fd_log_app(),fd_log_group(),thread, file,line,func, msg );
fd_log_app(),fd_log_group(),thread, path,line,func, msg );

if( to_stderr ) {
static char const * color_level_cstr[] = {
Expand All @@ -910,7 +911,7 @@ fd_log_private_1( int level,
char * now_short_cstr = now_cstr+5; now_short_cstr[21] = '\0'; /* Lop off the year, ns resolution and timezone */
fd_log_private_fprintf_0( fd_log_private_stderr_fileno, "%s %s %-6lu %-4s %-4s %s(%i): %s\n",
fd_log_private_colorize ? color_level_cstr[level] : level_cstr[level],
now_short_cstr, tid,cpu,thread, file, line, msg );
now_short_cstr, tid,cpu,thread, file_name, line, msg );
}

if( level<fd_log_level_flush() ) return;
Expand All @@ -921,7 +922,8 @@ fd_log_private_1( int level,
void
fd_log_private_2( int level,
long now,
char const * file,
char const * path,
char const * file_name,
int line,
char const * func,
char const * msg ) {
Expand All @@ -934,7 +936,7 @@ fd_log_private_2( int level,

}

fd_log_private_1( level, now, file, line, func, msg );
fd_log_private_1( level, now, path, file_name, line, func, msg );

if( level<fd_log_level_core() ) {
# if defined(__linux__)
Expand Down Expand Up @@ -1032,7 +1034,7 @@ fd_log_private_sig_abort( int sig,
static FD_TL int lock = 0;
fd_log_private_shared_lock = &lock;

#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ERR_NOEXIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 4, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
FD_LOG_ERR_NOEXIT(( "Received signal %s", fd_io_strsignal( sig ) ));
#undef FD_LOG_ERR_NOEXIT

Expand Down
57 changes: 35 additions & 22 deletions src/util/log/fd_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@

would log something like:

NOTICE 01-23 04:56:07.890123 45678 f0 0 src/file.c(901): 1 is the loneliest number
NOTICE 01-23 04:56:07.890123 45678 f0 0 file.c(901): 1 is the loneliest number

to the ephemeral log (stderr) and log something like:

Expand Down Expand Up @@ -195,7 +195,7 @@

would log something like:

WARNING 01-23 04:56:07.890123 75779 f0 0 src/file.c(901): HEXDUMP "bad_pkt" (96 bytes at 0x555555561a4e)
WARNING 01-23 04:56:07.890123 75779 f0 0 file.c(901): HEXDUMP "bad_pkt" (96 bytes at 0x555555561a4e)
0000: 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0123456789ABCDEF
0010: 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 GHIJKLMNOPQRSTUV
0020: 57 58 59 5a 61 62 63 64 65 66 67 68 69 6a 6b 6c WXYZabcdefghijkl
Expand All @@ -216,23 +216,34 @@
emergency diagnostics, you can call `write(2)` directly to stderr or the log file,
which is safe. */

#define FD_LOG_DEBUG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 0, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_INFO(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 1, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_NOTICE(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 2, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_WARNING(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 3, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ERR(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 4, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_CRIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 5, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ALERT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 6, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_EMERG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 7, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_0 a ); } while(0)

#define FD_LOG_HEXDUMP_DEBUG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 0, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_INFO(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 1, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_NOTICE(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 2, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_WARNING(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 3, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_ERR(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 4, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_CRIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 5, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_ALERT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 6, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_EMERG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 7, _fd_log_msg_now, __FILE__, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
/* FD_SRC_FILE evaluates to the basename of __FILE__. */

#if defined(__FILE_NAME__)
#define FD_SRC_FILE __FILE_NAME__
#elif defined(__GNUC__) || defined(__clang__)
#define FD_SRC_FILE (__builtin_strrchr( __FILE__, '/' ) ? __builtin_strrchr( __FILE__, '/' ) + 1 : __FILE__) /* compile time fold */
#else
#include <string.h>
#define FD_SRC_FILE (strrchr( __FILE__, '/' ) ? strrchr( __FILE__, '/' ) + 1 : __FILE__)
Comment on lines +224 to +227
#endif

#define FD_LOG_DEBUG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 0, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_INFO(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 1, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_NOTICE(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 2, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_WARNING(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 3, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ERR(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 4, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_CRIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 5, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_ALERT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 6, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)
#define FD_LOG_EMERG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 7, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_0 a ); } while(0)

#define FD_LOG_HEXDUMP_DEBUG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 0, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_INFO(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 1, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_NOTICE(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 2, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_WARNING(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_1( 3, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_ERR(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 4, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_CRIT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 5, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_ALERT(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 6, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)
#define FD_LOG_HEXDUMP_EMERG(a) do { long _fd_log_msg_now = fd_log_wallclock(); fd_log_private_2( 7, _fd_log_msg_now, __FILE__, FD_SRC_FILE, __LINE__, __func__, fd_log_private_hexdump_msg a ); } while(0)

/* FD_LOG_STDOUT(()) is used for writing formatted messages to STDOUT, it does not
take a lock and might interleave with other messages to the same pipe. It
Expand Down Expand Up @@ -314,7 +325,7 @@

would log something like:

NOTICE 01-23 04:56:07.890123 45678 f0 0 src/foo.c(901): cache line 0123456789abcd00
NOTICE 01-23 04:56:07.890123 45678 f0 0 foo.c(901): cache line 0123456789abcd00
00: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
Expand Down Expand Up @@ -647,15 +658,17 @@ fd_log_private_0( char const * fmt, ... ) __attribute__((format(printf,1,2))); /
void
fd_log_private_1( int level,
long now,
char const * file,
char const * path,
char const * file_name,
int line,
char const * func,
char const * msg );

void
fd_log_private_2( int level,
long now,
char const * file,
char const * path,
char const * file_name,
int line,
char const * func,
char const * msg ) __attribute__((noreturn)); /* Let compiler know this will not be returning */
Expand Down
Loading