NAME

XS::Log - C/XS 实现的高效的日志模块

DESCRIPTION

XS::Log是高效快速的日志模块,纯c语言开发,快速高效的IO读写,同时支持多线程。 也可以不通过openLog()和closeLog(),直接屏幕输出

由王海清(161263@qq.com)开发完成

SYNOPSI

use XS::Log qw(:all);

my %opt = (
    level             => LOG_LEVEL_DEBUG,
    mode              => LOG_MODE_DAILY,
    targets           => LOG_TARGET_CONSOLE | LOG_TARGET_FILE,
    use_color         => 1,
    show_timestamp    => 1,
    show_log_level    => 1,
    show_file_info    => 1,
    max_file_size     => 1024*1024*10,		#10M
    max_files         => 5,
    flush_immediately => 1,
);

openLog("test.log", \%opt);

printInf("This is info");
printWarn("This is warning");
printErr("This is error");
#printFail("This is fatal");

setLogColor(0);
setLogOptions("show_file_info",1);
setLogMode(LOG_LEVEL_DEBUG);		#最高级别,显示所有日志

my $user = "Alice";
my $val  = 42;

printInf("Hello %s, value=%d", $user, $val);
printErr("File not found: %s", "/tmp/test.txt");

closeLog();

常量

日志级别

LOG_LEVEL_OFF     -1       #关闭日志
LOG_LEVEL_FATAL    0       #致命错误
LOG_LEVEL_ERROR    1       #错误日志
LOG_LEVEL_WARN     2       #警告日志
LOG_LEVEL_INFO     3       #普通日志(默认)
LOG_LEVEL_TRACE    4       #Trace/Note日志
LOG_LEVEL_DEBUG    5       #测试日志
LOG_LEVEL_TEXT     6       #无格式日志

日志模式

LOG_MODE_CYCLE     0       #循环日志模式(默认)
LOG_MODE_DAILY     1       #按天日志模式
LOG_MODE_HOURLY    2       #按小时日志模式

日志输出目标选项

LOG_TARGET_CONSOLE 1       #输出到控制台(默认)
LOG_TARGET_FILE    2       #输出到文件
LOG_TARGET_SYSLOG  4       #输出到系统日志(暂未实现)

函数说明

openLog

openLog($log_filepath,\%options);

options参数

level                  #日志级别,默认: LOG_LEVEL_INFO
mode                   #日志模式,默认: LOG_MODE_CYCLE
targets                #输出目标组合(位掩码),默认: LOG_TARGET_CONSOLE
use_color;             #是否使用彩色输出(控制台),默认:1
show_timestamp;        #是否显示时间戳,默认:1
show_log_level;        #是否显示日志级别,默认:1
show_file_info;        #是否显示文件信息,默认:0
max_file_size;         #最大文件大小(KB),0表示不限制
max_files;             #最大文件数量,0表示不限制,默认100M
flush_immediately;     #每次记录后立即刷新,默认:0

closeLog

closeLog();            #关闭日志文件

flushLog

flushLog();           #flush日志缓存

setLogConf

setLogOptions($opt_key,$opt_val);	#设置options参数

setLogUseColor

setLogUseColor($bool);        #设置日志颜色,0-无颜色 1-有颜色

setLogTargets

 setLogTargets($target);       #设置日志输出日志模式,LOG_TARGET_CONSOLE/LOG_TARGET_FILE

setLogMode

setLogMode($mode);            #设置日志文件循环模式

setLogLevel

setLogLevel($level);          #设置日志级别

日志输出命令

printInf($msg);
printWarn($msg);
printErr($msg);
printFail($msg);      #注意:谨慎使用,会直接exit退出程序
printNote($msg);
printText($msg);      #原文输出

支持:%的方式格式化输出:

printInf("%s\n",$msg);