Log4j.jar不同的日志分别写到不同的日志文件

来源:互联网 发布:怎么看淘宝的追加评论 编辑:程序博客网 时间:2024/05/26 12:08

解决问题

1、不同的包,不同的类,不同的logger可以写到不同的日志文件中,自定义文件路径,输出格式等
2、适合于大型项目,对很多操作记录日志,不同时写到很多日志文件中
3、log4j用到的jar包,得自己添加好
4、本java类可实现简单调用:private Log logger= new Log4jUtil().InitLog4j("AdminUserController");
5、就可以在对应的类中直接使用 logger.info(…)

log4jUtil.java

我的log4j.perprities放在了apache tomcat/bin同级的目录下

import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.log4j.PropertyConfigurator;public  class Log4jUtil {    private  Log logger ;    public Log4jUtil() {        super();    }    public  Log InitLog4j(String logname){        //设置log4j.perprities路径        String buff,path;        path = (System.getProperty("user.dir")).toString();        int index = path.indexOf("bin");        buff = path.substring(0, index);        PropertyConfigurator.configure(buff+"log4j.properties");        //设置日志          logger = LogFactory.getLog(logname);        return logger;    }}

log4j.priperties

#从高到低有ERROR、WARN、 INFO、DEBUG;注意这里不设置根目录rootLogger###输出INFO级别以上的日志到=E://log/AdminController.log###log4j.logger.AdminController=INFO,admin_controllerlog4j.appender.admin_controller = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.admin_controller.File = E://log/AdminController.loglog4j.appender.admin_controller.Append = truelog4j.appender.admin_controller.Threshold = INFO log4j.appender.admin_controller.layout = org.apache.log4j.PatternLayoutlog4j.appender.admin_controller.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%nlog4j.additivity.admin_controller=false  #只单独写在自己的日志文件中###输出INFO级别以上的日志到=E://log/AdminUserController.log###log4j.logger.AdminUserController=INFO,admin_user_controllerlog4j.appender.admin_user_controller = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.admin_user_controller.File =E://log/AdminUserController.log log4j.appender.admin_user_controller.Append = truelog4j.appender.admin_user_controller.Threshold = INFO log4j.appender.admin_user_controller.layout = org.apache.log4j.PatternLayoutlog4j.appender.admin_user_controller.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%nlog4j.additivity.admin_user_controller=false  #只单独写在自己的日志文件中

使用方法

在要使用日志的类中写入下代码,本例是AdminUserController类:

    定义并初始化变量    private Log logger= new Log4jUtil().InitLog4j("AdminUserController");    在本类的调用处:    logger.info("写下要要写入日志的内容");    log4j.perprities的添加,添加日志文件路径:    复制小段log4j.perprities中的代码,改其名字和日志输出文件目录:    ###输出INFO级别以上的日志到=E://log/AdminUserController.log###    log4j.logger.“logger关键字”=INFO,自定义的名字    log4j.appender.名字 = org.apache.log4j.DailyRollingFileAppender    log4j.appender.名字.File =日志文件目录    log4j.appender.名字r.Append = true    log4j.appender.名字.Threshold = INFO     log4j.appender.名字.layout = org.apache.log4j.PatternLayout    log4j.appender.名字.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}      [ %t:%r ] - [ %p ]  %m%n    log4j.additivity.admin_user_controller=false  #意为只单独写在自己的日志文件中
0 0