From 417ef849f1adcb3b655fbb2382e126b0b17aabbe Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Sat, 11 Sep 2010 14:27:27 +0400 Subject: log: implemented extensible loggin engine with per-session logging support log: implemented log_file logging target with per-user/per-session support --- accel-pptpd/log.h | 77 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 18 deletions(-) (limited to 'accel-pptpd/log.h') 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: , (C) 2009 -// -// Copyright: See COPYING file that comes with this distribution -// -// - -#ifndef LOG_H -#define LOG_H - -#include - -void log_init(FILE *f,int level,int color); +#ifndef __LOG_H +#define __LOG_H + +#include +#include +#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 -- cgit v1.2.3