diff options
author | Kozlov Dmitry <dima@server> | 2010-09-11 14:27:27 +0400 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-09-11 14:27:27 +0400 |
commit | 417ef849f1adcb3b655fbb2382e126b0b17aabbe (patch) | |
tree | 560cba379463fc8e912c7f73b54676b7c1582062 /accel-pptpd/log.h | |
parent | d0c060a39d3bf6f675666a1400b533511e24a26c (diff) | |
download | accel-ppp-xebd-417ef849f1adcb3b655fbb2382e126b0b17aabbe.tar.gz accel-ppp-xebd-417ef849f1adcb3b655fbb2382e126b0b17aabbe.zip |
log: implemented extensible loggin engine with per-session logging support
log: implemented log_file logging target with per-user/per-session support
Diffstat (limited to 'accel-pptpd/log.h')
-rw-r--r-- | accel-pptpd/log.h | 77 |
1 files changed, 59 insertions, 18 deletions
diff --git a/accel-pptpd/log.h b/accel-pptpd/log.h index 25f9f97..2e82526 100644 --- a/accel-pptpd/log.h +++ b/accel-pptpd/log.h @@ -1,25 +1,66 @@ -// -// C++ Interface: log -// -// Description: -// -// -// Author: <xeb@mail.ru>, (C) 2009 -// -// Copyright: See COPYING file that comes with this distribution -// -// - -#ifndef LOG_H -#define LOG_H - -#include <stdio.h> - -void log_init(FILE *f,int level,int color); +#ifndef __LOG_H +#define __LOG_H + +#include <stdarg.h> +#include <sys/time.h> +#include "list.h" + +#define LOG_MSG 0 +#define LOG_ERROR 1 +#define LOG_WARN 2 +#define LOG_INFO 3 +#define LOG_DEBUG 4 + +#define LOG_CHUNK_SIZE 128 + +struct ppp_t; +struct triton_context_t; + +struct log_msg_t +{ + struct list_head entry; + void *lpd; + struct timeval timestamp; + int level; + struct log_chunk_t *hdr; + struct list_head *chunks; +}; + +struct log_chunk_t +{ + struct list_head entry; + int len; + char msg[0]; +}; + +struct log_target_t +{ + struct list_head entry; + + void (*log)(struct log_msg_t *); + void (*session_log)(struct ppp_t *ppp, struct log_msg_t *); + void (*session_start)(struct ppp_t *ppp); + void (*session_stop)(struct ppp_t *ppp); +}; + +void log_free_msg(struct log_msg_t *msg); + +void log_emerg(const char *fmt, ...); + void log_error(const char *fmt,...); void log_warn(const char *fmt,...); void log_info(const char *fmt,...); void log_debug(const char *fmt,...); void log_msg(const char *fmt,...); +void log_ppp_error(const char *fmt,...); +void log_ppp_warn(const char *fmt,...); +void log_ppp_info(const char *fmt,...); +void log_ppp_debug(const char *fmt,...); +void log_ppp_msg(const char *fmt,...); + +void log_switch(struct triton_context_t *ctx, void *arg); + +void log_register_target(struct log_target_t *t); + #endif |