全部博文(321)
分类: LINUX
2010-01-04 10:53:11
〖隔叶黄莺三四声,挂壁飞瀑千万尘。若是人间无净土,此处为何妙语真! 隔叶黄莺四字,本非取自此句,而有寄寓他意,因见妙语,亦与予心合!〗
用 Java 的很少有人对 log4j 感觉陌生,这是 Apache 上的项目。同时 Apache 上也有针对其他语言的 Log 组件,如 log4cxx、log4net、log4php。
所用 Perl 时也会想想:Perl 该用什么日志模块呢? log4perl?google 一下果然后,只不过它不是由 Apache 出品。
该项目原来在 ,现已移到 。
下载地址: (要编译的)
使用文档:1. 2.
3.
当然,你也可以用 CPAN 和 PPM(如果安装的是 ActivePerl) 来安装 Log::Log4perl 模块。
若能用 nmake 构建的话可用 perl -MCPAN -e "install Log::Log4perl" 下载安装 Log::Log4perl
ActivePerl 可用:ppm install "" 安装(参考它的 FAQ)
下面是使用方法,所有的概念,如 Appender、Layout、LogLevel、Category 等的概念与 log4j 基本或者说完全一致。所以只要有 log4j、log4cxx、log4net 或 log4php 其中一个组件的使用经验,那么 log4perl 的使用方式你会觉得十分自然舒适。
好了,就是使用代码和配置文件, 以及瞧瞧代码中如何初始化配置文件的。
代码 TestLog4perl.pl
01.#!/usr/bin/perl -w 02. 03.use Log::Log4perl::Level; 04.use Log::Log4perl qw(:easy); 05. 06.#初始化 log4perl 配制文件 07.Log::Log4perl->init("log4perl.conf"); 08. 09.#创建 log 实例,info 并输出信息,模块 Foo:Bar 10.our $log = Log::Log4perl::get_logger("Foo::Bar"); 11.$log->info("看看,我怎么在屏幕上输出来两次了!"); 12. 13.#创建 log 实例,debug 并输出信息,模块 Com::Unmi 14.my $log1 = Log::Log4perl::get_logger("Com::Unmi"); 15.$log1->debug("Where,我打印的信息哪去了!");01.#所有 DEBUG 以上级别日志输出到日志文件和屏幕 02.log4perl.logger = DEBUG,Logfile,Screen 03. 04.#对于包 Foo::Bar 中 INFO 以上级别日志只输出到屏幕 05.log4perl.category.Foo.Bar = INFO,Screen 06. 07.#配置日志文件 Logfile Appender 08.log4perl.appender.Logfile = Log::Log4perl::Appender::File 09.log4perl.appender.Logfile.filename = log/test.log 10.log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout 11. 12.#%d时间{后是时间格式} #%F 是产立生日志的文件名 %L 是行号 13.log4perl.appender.Logfile.layout.ConversionPattern =%d{y/M/d H:m:s:S} [%r] %F %L %m%n 14. 15.#配置屏幕输出 Screen Appender 16.log4perl.appender.Screen = Log::Log4perl::Appender::Screen 17.log4perl.appender.Screen.stderr = 0 18.log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout 19. 20.#和 log4j 一样,可以单独控制某个包的级别 21.log4perl.logger.Com.Unmi= ERROR