mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 06:48:05 +01:00
r18804@catbus: nickm | 2008-03-13 18:18:31 -0400
Refactor log domain mask code so that nobody outside of log.c has to use SEVERITY_MASK_IDX. It is error-prone. svn:r14016
This commit is contained in:
parent
d928e5685f
commit
46155aca17
5 changed files with 29 additions and 26 deletions
|
@ -24,6 +24,7 @@ const char log_c_id[] = "$Id$";
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#endif
|
#endif
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#define LOG_PRIVATE
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "container.h"
|
#include "container.h"
|
||||||
|
|
||||||
|
@ -474,16 +475,21 @@ close_log(logfile_t *victim)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** DOCDOC XXXX021 remove me. */
|
/** Adjust a log severity configuration in <b>severity_out</b> to contain
|
||||||
static log_severity_list_t *
|
* every domain between <b>loglevelMin</b> and <b>loglevelMax</b>, inclusive.
|
||||||
new_severity_list(int loglevelMin, int loglevelMax)
|
*/
|
||||||
|
void
|
||||||
|
set_log_severity_config(int loglevelMin, int loglevelMax,
|
||||||
|
log_severity_list_t *severity_out)
|
||||||
{
|
{
|
||||||
log_severity_list_t *out = tor_malloc_zero(sizeof(log_severity_list_t));
|
|
||||||
int i;
|
int i;
|
||||||
|
tor_assert(loglevelMin >= loglevelMax);
|
||||||
|
tor_assert(loglevelMin >= LOG_ERR && loglevelMin <= LOG_DEBUG);
|
||||||
|
tor_assert(loglevelMax >= LOG_ERR && loglevelMax <= LOG_DEBUG);
|
||||||
|
memset(severity_out, 0, sizeof(log_severity_list_t));
|
||||||
for (i = loglevelMin; i >= loglevelMax; --i) {
|
for (i = loglevelMin; i >= loglevelMax; --i) {
|
||||||
out->masks[SEVERITY_MASK_IDX(i)] = ~0u;
|
severity_out->masks[SEVERITY_MASK_IDX(i)] = ~0u;
|
||||||
}
|
}
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Add a log handler named <b>name</b> to send all messages in <b>severity</b>
|
/** Add a log handler named <b>name</b> to send all messages in <b>severity</b>
|
||||||
|
@ -529,9 +535,10 @@ init_logging(void)
|
||||||
void
|
void
|
||||||
add_temp_log(void)
|
add_temp_log(void)
|
||||||
{
|
{
|
||||||
|
log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
|
||||||
|
set_log_severity_config(LOG_NOTICE, LOG_ERR, s);
|
||||||
LOCK_LOGS();
|
LOCK_LOGS();
|
||||||
add_stream_log_impl(new_severity_list(LOG_NOTICE, LOG_ERR),
|
add_stream_log_impl(s, "<temp>", stdout);
|
||||||
"<temp>", stdout);
|
|
||||||
logfiles->is_temporary = 1;
|
logfiles->is_temporary = 1;
|
||||||
UNLOCK_LOGS();
|
UNLOCK_LOGS();
|
||||||
}
|
}
|
||||||
|
@ -567,8 +574,7 @@ change_callback_log_severity(int loglevelMin, int loglevelMax,
|
||||||
LOCK_LOGS();
|
LOCK_LOGS();
|
||||||
for (lf = logfiles; lf; lf = lf->next) {
|
for (lf = logfiles; lf; lf = lf->next) {
|
||||||
if (lf->callback == cb) {
|
if (lf->callback == cb) {
|
||||||
tor_free(lf->severities);
|
set_log_severity_config(loglevelMin, loglevelMax, lf->severities);
|
||||||
lf->severities = new_severity_list(loglevelMin, loglevelMax);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_log_global_min_severity = get_min_log_level();
|
_log_global_min_severity = get_min_log_level();
|
||||||
|
|
|
@ -104,9 +104,11 @@ typedef struct log_severity_list_t {
|
||||||
log_domain_mask_t masks[LOG_DEBUG-LOG_ERR+1];
|
log_domain_mask_t masks[LOG_DEBUG-LOG_ERR+1];
|
||||||
} log_severity_list_t;
|
} log_severity_list_t;
|
||||||
|
|
||||||
|
#ifdef LOG_PRIVATE
|
||||||
/** Given a severity, yields an index into log_severity_list_t.masks to use
|
/** Given a severity, yields an index into log_severity_list_t.masks to use
|
||||||
* for that severity. */
|
* for that severity. */
|
||||||
#define SEVERITY_MASK_IDX(sev) ((sev) - LOG_ERR)
|
#define SEVERITY_MASK_IDX(sev) ((sev) - LOG_ERR)
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Callback type used for add_callback_log. */
|
/** Callback type used for add_callback_log. */
|
||||||
typedef void (*log_callback)(int severity, uint32_t domain, const char *msg);
|
typedef void (*log_callback)(int severity, uint32_t domain, const char *msg);
|
||||||
|
@ -116,6 +118,8 @@ int parse_log_level(const char *level);
|
||||||
const char *log_level_to_string(int level);
|
const char *log_level_to_string(int level);
|
||||||
int parse_log_severity_config(const char **cfg,
|
int parse_log_severity_config(const char **cfg,
|
||||||
log_severity_list_t *severity_out);
|
log_severity_list_t *severity_out);
|
||||||
|
void set_log_severity_config(int minSeverity, int maxSeverity,
|
||||||
|
log_severity_list_t *severity_out);
|
||||||
void add_stream_log(log_severity_list_t *severity, const char *name,
|
void add_stream_log(log_severity_list_t *severity, const char *name,
|
||||||
FILE *stream);
|
FILE *stream);
|
||||||
int add_file_log(log_severity_list_t *severity, const char *filename);
|
int add_file_log(log_severity_list_t *severity, const char *filename);
|
||||||
|
|
|
@ -3636,8 +3636,7 @@ main(int c, char**v)
|
||||||
|
|
||||||
{
|
{
|
||||||
log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
|
log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
|
||||||
for (i = loglevel; i >= LOG_ERR; --i)
|
set_log_severity_config(loglevel, LOG_ERR, s);
|
||||||
s->masks[SEVERITY_MASK_IDX(i)] = ~0u;
|
|
||||||
add_stream_log(s, "", stdout);
|
add_stream_log(s, "", stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -190,13 +190,10 @@ parse_commandline(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
s = tor_malloc_zero(sizeof(log_severity_list_t));
|
s = tor_malloc_zero(sizeof(log_severity_list_t));
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_ERR)] = ~0u;
|
if (verbose)
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_WARN)] = ~0u;
|
set_log_severity_config(LOG_DEBUG, LOG_ERR, s);
|
||||||
if (verbose) {
|
else
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_NOTICE)] = ~0u;
|
set_log_severity_config(LOG_WARN, LOG_ERR, s);
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_INFO)] = ~0u;
|
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_DEBUG)] = ~0u;
|
|
||||||
}
|
|
||||||
add_stream_log(s, "<stderr>", stderr);
|
add_stream_log(s, "<stderr>", stderr);
|
||||||
|
|
||||||
if (!identity_key_file) {
|
if (!identity_key_file) {
|
||||||
|
|
|
@ -318,13 +318,10 @@ main(int argc, char **argv)
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_ERR)] = ~0u;
|
if (isVerbose)
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_WARN)] = ~0u;
|
set_log_severity_config(LOG_DEBUG, LOG_ERR, s);
|
||||||
if (isVerbose) {
|
else
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_NOTICE)] = ~0u;
|
set_log_severity_config(LOG_WARN, LOG_ERR, s);
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_INFO)] = ~0u;
|
|
||||||
s->masks[SEVERITY_MASK_IDX(LOG_DEBUG)] = ~0u;
|
|
||||||
}
|
|
||||||
add_stream_log(s, "<stderr>", stderr);
|
add_stream_log(s, "<stderr>", stderr);
|
||||||
|
|
||||||
if (n_args == 1) {
|
if (n_args == 1) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue