@@ -29,6 +29,9 @@ charon.filelog.<name>.ike_name = no
|
|||||||
Prefix each log entry with the connection name and a unique numerical
|
Prefix each log entry with the connection name and a unique numerical
|
||||||
identifier for each IKE_SA.
|
identifier for each IKE_SA.
|
||||||
|
|
||||||
|
charon.filelog.<name>.log_level = no
|
||||||
|
Add the log level of each message after the subsystem (e.g. [IKE2]).
|
||||||
|
|
||||||
charon.filelog.<name>.time_format
|
charon.filelog.<name>.time_format
|
||||||
Prefix each log entry with a timestamp. The option accepts a format string
|
Prefix each log entry with a timestamp. The option accepts a format string
|
||||||
as passed to **strftime**(3).
|
as passed to **strftime**(3).
|
||||||
|
|||||||
@@ -382,7 +382,7 @@ static void load_log_levels(file_logger_t *logger, char *section)
|
|||||||
static void load_logger_options(file_logger_t *logger, char *section)
|
static void load_logger_options(file_logger_t *logger, char *section)
|
||||||
{
|
{
|
||||||
char *time_format;
|
char *time_format;
|
||||||
bool add_ms, ike_name;
|
bool add_ms, ike_name, log_level;
|
||||||
|
|
||||||
time_format = conftest->test->get_str(conftest->test,
|
time_format = conftest->test->get_str(conftest->test,
|
||||||
"log.%s.time_format", NULL, section);
|
"log.%s.time_format", NULL, section);
|
||||||
@@ -390,8 +390,10 @@ static void load_logger_options(file_logger_t *logger, char *section)
|
|||||||
"log.%s.time_add_ms", FALSE, section);
|
"log.%s.time_add_ms", FALSE, section);
|
||||||
ike_name = conftest->test->get_bool(conftest->test,
|
ike_name = conftest->test->get_bool(conftest->test,
|
||||||
"log.%s.ike_name", FALSE, section);
|
"log.%s.ike_name", FALSE, section);
|
||||||
|
log_level = conftest->test->get_bool(conftest->test,
|
||||||
|
"log.%s.log_level", FALSE, section);
|
||||||
|
|
||||||
logger->set_options(logger, time_format, add_ms, ike_name);
|
logger->set_options(logger, time_format, add_ms, ike_name, log_level);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -457,7 +459,7 @@ int main(int argc, char *argv[])
|
|||||||
lib->credmgr->add_set(lib->credmgr, &conftest->creds->set);
|
lib->credmgr->add_set(lib->credmgr, &conftest->creds->set);
|
||||||
|
|
||||||
logger = file_logger_create("stdout");
|
logger = file_logger_create("stdout");
|
||||||
logger->set_options(logger, NULL, FALSE, FALSE);
|
logger->set_options(logger, NULL, FALSE, FALSE, FALSE);
|
||||||
logger->open(logger, FALSE, FALSE);
|
logger->open(logger, FALSE, FALSE);
|
||||||
logger->set_level(logger, DBG_ANY, LEVEL_CTRL);
|
logger->set_level(logger, DBG_ANY, LEVEL_CTRL);
|
||||||
charon->bus->add_logger(charon->bus, &logger->logger);
|
charon->bus->add_logger(charon->bus, &logger->logger);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2015 Tobias Brunner
|
* Copyright (C) 2012-2020 Tobias Brunner
|
||||||
* Copyright (C) 2006 Martin Willi
|
* Copyright (C) 2006 Martin Willi
|
||||||
* HSR Hochschule fuer Technik Rapperswil
|
* HSR Hochschule fuer Technik Rapperswil
|
||||||
*
|
*
|
||||||
@@ -74,6 +74,11 @@ struct private_file_logger_t {
|
|||||||
*/
|
*/
|
||||||
bool ike_name;
|
bool ike_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Print the log level
|
||||||
|
*/
|
||||||
|
bool log_level;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mutex to ensure multi-line log messages are not torn apart
|
* Mutex to ensure multi-line log messages are not torn apart
|
||||||
*/
|
*/
|
||||||
@@ -89,7 +94,7 @@ METHOD(logger_t, log_, void,
|
|||||||
private_file_logger_t *this, debug_t group, level_t level, int thread,
|
private_file_logger_t *this, debug_t group, level_t level, int thread,
|
||||||
ike_sa_t* ike_sa, const char *message)
|
ike_sa_t* ike_sa, const char *message)
|
||||||
{
|
{
|
||||||
char timestr[128], namestr[128] = "";
|
char groupstr[5], timestr[128], namestr[128] = "";
|
||||||
const char *current = message, *next;
|
const char *current = message, *next;
|
||||||
struct tm tm;
|
struct tm tm;
|
||||||
timeval_t tv;
|
timeval_t tv;
|
||||||
@@ -102,6 +107,7 @@ METHOD(logger_t, log_, void,
|
|||||||
this->lock->unlock(this->lock);
|
this->lock->unlock(this->lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->time_format)
|
if (this->time_format)
|
||||||
{
|
{
|
||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
@@ -110,6 +116,17 @@ METHOD(logger_t, log_, void,
|
|||||||
localtime_r(&s, &tm);
|
localtime_r(&s, &tm);
|
||||||
strftime(timestr, sizeof(timestr), this->time_format, &tm);
|
strftime(timestr, sizeof(timestr), this->time_format, &tm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->log_level)
|
||||||
|
{
|
||||||
|
snprintf(groupstr, sizeof(groupstr), "%N%d", debug_names, group,
|
||||||
|
level);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(groupstr, sizeof(groupstr), "%N", debug_names, group);
|
||||||
|
}
|
||||||
|
|
||||||
if (this->ike_name && ike_sa)
|
if (this->ike_name && ike_sa)
|
||||||
{
|
{
|
||||||
if (ike_sa->get_peer_cfg(ike_sa))
|
if (ike_sa->get_peer_cfg(ike_sa))
|
||||||
@@ -137,19 +154,19 @@ METHOD(logger_t, log_, void,
|
|||||||
{
|
{
|
||||||
if (this->add_ms)
|
if (this->add_ms)
|
||||||
{
|
{
|
||||||
fprintf(this->out, "%s.%03u %.2d[%N]%s ",
|
fprintf(this->out, "%s.%03u %.2d[%s]%s ",
|
||||||
timestr, ms, thread, debug_names, group, namestr);
|
timestr, ms, thread, groupstr, namestr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf(this->out, "%s %.2d[%N]%s ",
|
fprintf(this->out, "%s %.2d[%s]%s ",
|
||||||
timestr, thread, debug_names, group, namestr);
|
timestr, thread, groupstr, namestr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf(this->out, "%.2d[%N]%s ",
|
fprintf(this->out, "%.2d[%s]%s ",
|
||||||
thread, debug_names, group, namestr);
|
thread, groupstr, namestr);
|
||||||
}
|
}
|
||||||
if (next == NULL)
|
if (next == NULL)
|
||||||
{
|
{
|
||||||
@@ -199,13 +216,15 @@ METHOD(file_logger_t, set_level, void,
|
|||||||
}
|
}
|
||||||
|
|
||||||
METHOD(file_logger_t, set_options, void,
|
METHOD(file_logger_t, set_options, void,
|
||||||
private_file_logger_t *this, char *time_format, bool add_ms, bool ike_name)
|
private_file_logger_t *this, char *time_format, bool add_ms, bool ike_name,
|
||||||
|
bool log_level)
|
||||||
{
|
{
|
||||||
this->lock->write_lock(this->lock);
|
this->lock->write_lock(this->lock);
|
||||||
free(this->time_format);
|
free(this->time_format);
|
||||||
this->time_format = strdupnull(time_format);
|
this->time_format = strdupnull(time_format);
|
||||||
this->add_ms = add_ms;
|
this->add_ms = add_ms;
|
||||||
this->ike_name = ike_name;
|
this->ike_name = ike_name;
|
||||||
|
this->log_level = log_level;
|
||||||
this->lock->unlock(this->lock);
|
this->lock->unlock(this->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2015 Tobias Brunner
|
* Copyright (C) 2012-2020 Tobias Brunner
|
||||||
* Copyright (C) 2006 Martin Willi
|
* Copyright (C) 2006 Martin Willi
|
||||||
* HSR Hochschule fuer Technik Rapperswil
|
* HSR Hochschule fuer Technik Rapperswil
|
||||||
*
|
*
|
||||||
@@ -51,9 +51,10 @@ struct file_logger_t {
|
|||||||
* @param add_ms TRUE to add the number of milliseconds within the
|
* @param add_ms TRUE to add the number of milliseconds within the
|
||||||
* current second after the timestamp
|
* current second after the timestamp
|
||||||
* @param ike_name TRUE to prefix the name of the IKE_SA
|
* @param ike_name TRUE to prefix the name of the IKE_SA
|
||||||
|
* @param log_level TRUE to include the log level in the message
|
||||||
*/
|
*/
|
||||||
void (*set_options) (file_logger_t *this, char *time_format, bool add_ms,
|
void (*set_options) (file_logger_t *this, char *time_format, bool add_ms,
|
||||||
bool ike_name);
|
bool ike_name, bool log_level);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open (or reopen) the log file according to the given parameters
|
* Open (or reopen) the log file according to the given parameters
|
||||||
|
|||||||
@@ -486,7 +486,7 @@ static void load_file_logger(private_daemon_t *this, char *section,
|
|||||||
file_logger_t *file_logger;
|
file_logger_t *file_logger;
|
||||||
debug_t group;
|
debug_t group;
|
||||||
level_t def;
|
level_t def;
|
||||||
bool add_ms, ike_name, flush_line, append;
|
bool add_ms, ike_name, log_level, flush_line, append;
|
||||||
char *time_format, *filename;
|
char *time_format, *filename;
|
||||||
|
|
||||||
time_format = lib->settings->get_str(lib->settings,
|
time_format = lib->settings->get_str(lib->settings,
|
||||||
@@ -495,6 +495,8 @@ static void load_file_logger(private_daemon_t *this, char *section,
|
|||||||
"%s.filelog.%s.time_add_ms", FALSE, lib->ns, section);
|
"%s.filelog.%s.time_add_ms", FALSE, lib->ns, section);
|
||||||
ike_name = lib->settings->get_bool(lib->settings,
|
ike_name = lib->settings->get_bool(lib->settings,
|
||||||
"%s.filelog.%s.ike_name", FALSE, lib->ns, section);
|
"%s.filelog.%s.ike_name", FALSE, lib->ns, section);
|
||||||
|
log_level = lib->settings->get_bool(lib->settings,
|
||||||
|
"%s.filelog.%s.log_level", FALSE, lib->ns, section);
|
||||||
flush_line = lib->settings->get_bool(lib->settings,
|
flush_line = lib->settings->get_bool(lib->settings,
|
||||||
"%s.filelog.%s.flush_line", FALSE, lib->ns, section);
|
"%s.filelog.%s.flush_line", FALSE, lib->ns, section);
|
||||||
append = lib->settings->get_bool(lib->settings,
|
append = lib->settings->get_bool(lib->settings,
|
||||||
@@ -508,7 +510,8 @@ static void load_file_logger(private_daemon_t *this, char *section,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
file_logger->set_options(file_logger, time_format, add_ms, ike_name);
|
file_logger->set_options(file_logger, time_format, add_ms, ike_name,
|
||||||
|
log_level);
|
||||||
file_logger->open(file_logger, flush_line, append);
|
file_logger->open(file_logger, flush_line, append);
|
||||||
|
|
||||||
def = lib->settings->get_int(lib->settings, "%s.filelog.%s.default", 1,
|
def = lib->settings->get_int(lib->settings, "%s.filelog.%s.default", 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user