您的位置:首页 > 其它

log4j使用细节

2015-08-05 21:20 309 查看

问题一:打印不同类的类名信息?

在log4j中通常是通过Logger.getLogger(class)指定所打印的类名,但是当我们需要打印不同类信息时,目前只能这样做,在不同的类文件中构建不同的logger,比如:

类1:

[code]     [code] public class Water


{


     private static Logger LOGGER = Logger.getLogger(Water.class);


     // 流水的方法


     public synchronized void flowWater(String studentName)


    {


          LOGGER.debug("结束为"+studentName+"流水");


    }


}

[/code]
[/code]

类2:

[code]
[code] public class Student


{


    private static Logger LOGGER = Logger.getLogger(Student.class);


        // 学生接水的全过程


     public void receiveWater()


    {


         LOGGER.info("从教室跑向饮水机");


         LOGGER.info("跑回教室");


    }


}

[/code]
[/code]

 

另一种更简洁的方式,比如

类1:


[code]public class Water
{
    public synchronized void flowWater(String studentName)       
   {               
        Logger.getLogger(Water.class).debug("结束为"+studentName+"流水");      
   }
}

[/code]

类2:


[code]public class Student
{
    public void receiveWater()       
   {      
        Logger.getLogger(Student.class).debug("从教室跑向饮水机");       
        Logger.getLogger(Student.class).debug("跑回教室");       
   }
}


[/code]

问题二:怎样每小时生成一个文件?

为文件输出模式设置参数即可,

比如:

[code]# 输出源file将日志输出到文件
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern = ’.’yyyy-MM-dd-HH
# 日志输出的文件
log4j.appender.file.File = mylog.log

#是否在原有文件中添加日志
# log4j.appender.file.Append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss} [%-5p]  %t (%F:%L) -%m%n

[/code]

DatePattern控制,具体对应格式如下:

1)’.’yyyy-MM: 每月

2)’.’yyyy-ww: 每周

3)’.’yyyy-MM-dd: 每天

4)’.’yyyy-MM-dd-a: 每天两次

5)’.’yyyy-MM-dd-HH: 每小时

6)’.’yyyy-MM-dd-HH-mm: 每分钟

 

 

主要信息,可以查看官方的API文档:

https://logging.apache.org/log4j/1.2/apidocs/index.html

 

参考:http://www.weixuehao.com/archives/385

 


 


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: