[formats] add a format for the lnav debug log

master
Tim Stack 4 weeks ago
parent 30ec70d760
commit 61c2d2c8aa

@ -154,8 +154,11 @@ set(FORMAT_FILES
formats/access_log.json
formats/alb_log.json
formats/block_log.json
formats/bunyan_log.json
formats/candlepin_log.json
formats/choose_repo_log.json
formats/cloudflare_log.json
formats/cloudvm_ram_log.json
formats/cups_log.json
formats/dpkg_log.json
formats/elb_log.json
@ -163,11 +166,15 @@ set(FORMAT_FILES
formats/error_log.json
formats/esx_syslog_log.json
formats/fsck_hfs_log.json
formats/github_events_log.json
formats/glog_log.json
formats/haproxy_log.json
formats/java_log.json
formats/journald_json_log.json
formats/katello_log.json
formats/lnav_debug_log.json
formats/nextcloud_log.json
formats/nextflow_log.json
formats/openam_log.json
formats/openamdb_log.json
formats/openstack_log.json
@ -175,6 +182,7 @@ set(FORMAT_FILES
formats/papertrail_log.json
formats/pcap_log.json
formats/procstate_log.json
formats/redis_log.json
formats/snaplogic_log.json
formats/sssd_log.json
formats/strace_log.json
@ -183,13 +191,17 @@ set(FORMAT_FILES
formats/s3_log.json
formats/tcf_log.json
formats/tcsh_history.json
formats/unifi_log.json
formats/uwsgi_log.json
formats/vdsm_log.json
formats/vmk_log.json
formats/vmw_log.json
formats/vmw_vc_svc_log.json
formats/vmw_py_log.json
formats/xmlrpc_log.json)
formats/vpostgres_log.json
formats/xmlrpc_log.json
formats/zookeeper_log.json
)
set(FORMAT_FILE_PATHS ${FORMAT_FILES})

@ -328,20 +328,25 @@ log_msg(lnav_log_level_t level,
gettimeofday(&curr_time, nullptr);
localtime_r(&curr_time.tv_sec, &localtm);
auto line = log_alloc();
prefix_size = snprintf(line,
MAX_LOG_LINE_SIZE,
"%4d-%02d-%02dT%02d:%02d:%02d.%03d %s t%u %s:%d ",
localtm.tm_year + 1900,
localtm.tm_mon + 1,
localtm.tm_mday,
localtm.tm_hour,
localtm.tm_min,
localtm.tm_sec,
(int) (curr_time.tv_usec / 1000),
LEVEL_NAMES[lnav::enums::to_underlying(level)],
current_thid.t_id,
src_file,
line_number);
auto gmtoff = std::abs(localtm.tm_gmtoff) / 60;
prefix_size
= snprintf(line,
MAX_LOG_LINE_SIZE,
"%4d-%02d-%02dT%02d:%02d:%02d.%03d%c%02d:%02d %s t%u %s:%d ",
localtm.tm_year + 1900,
localtm.tm_mon + 1,
localtm.tm_mday,
localtm.tm_hour,
localtm.tm_min,
localtm.tm_sec,
(int) (curr_time.tv_usec / 1000),
localtm.tm_gmtoff < 0 ? '-' : '+',
(int) gmtoff / 60,
(int) gmtoff % 60,
LEVEL_NAMES[lnav::enums::to_underlying(level)],
current_thid.t_id,
src_file,
line_number);
#if 0
if (!thread_log_prefix.empty()) {
prefix_size += snprintf(
@ -660,12 +665,14 @@ log_pipe_err(int fd)
reader.detach();
}
log_state_dumper::log_state_dumper()
log_state_dumper::
log_state_dumper()
{
DUMPER_LIST().push_back(this);
}
log_state_dumper::~log_state_dumper()
log_state_dumper::~
log_state_dumper()
{
auto iter = std::find(DUMPER_LIST().begin(), DUMPER_LIST().end(), this);
if (iter != DUMPER_LIST().end()) {
@ -673,12 +680,14 @@ log_state_dumper::~log_state_dumper()
}
}
log_crash_recoverer::log_crash_recoverer()
log_crash_recoverer::
log_crash_recoverer()
{
CRASH_LIST.push_back(this);
}
log_crash_recoverer::~log_crash_recoverer()
log_crash_recoverer::~
log_crash_recoverer()
{
auto iter = std::find(CRASH_LIST.begin(), CRASH_LIST.end(), this);

@ -21,6 +21,7 @@ FORMAT_FILES = \
$(srcdir)/%reldir%/java_log.json \
$(srcdir)/%reldir%/journald_json_log.json \
$(srcdir)/%reldir%/katello_log.json \
$(srcdir)/%reldir%/lnav_debug_log.json \
$(srcdir)/%reldir%/nextcloud_log.json \
$(srcdir)/%reldir%/nextflow_log.json \
$(srcdir)/%reldir%/openam_log.json \

@ -0,0 +1,37 @@
{
"$schema": "https://lnav.org/schemas/format-v1.schema.json",
"lnav_debug_log": {
"title": "lnav debug log",
"description": "Log format for lnav's own debug log",
"regex": {
"std": {
"pattern": "(?<timestamp>\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}(-|\\+)\\d{2}:\\d{2}) (?<level>\\w) (?<thread>\\w+) (?<srcfile>[^:]+):(?<srcline>\\d+) (?<body>.*)"
}
},
"value": {
"srcfile": {
"kind": "string",
"identifier": true
},
"level": {
"kind": "string"
},
"srcline": {
"kind": "integer",
"foreign-key": true
},
"thread": {
"kind": "string",
"identifier": true
},
"timestamp": {
"kind": "string"
}
},
"sample": [
{
"line": "2024-05-22T14:55:40.160-07:00 D t0 pollable.cc:47 pollable detach 0x146605550 from 0x6000008c82d8"
}
]
}
}
Loading…
Cancel
Save