【Java】log4j日志配置

1. 按照日期生成分割日志文件

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=/logs/log.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

DatePattern的详细配置项:

yyyy-MM:每月
yyyy-ww:每周
yyyy-MM-dd:每天
yyyy-MM-dd-a:每天两次
yyyy-MM-dd-HH:每小时
yyyy-MM-dd-HH-mm:每分钟

log4j.appender.myfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] [%L]- %m%n ,日志的布局方式,%开头的字符意义如下:

%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
%r:输出自应用程序启动到输出该log信息耗费的毫秒数。
%t:输出产生该日志事件的线程名。
%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:输出日志信息所属的类目,通常就是所在类的全名。
%M:输出产生日志信息的方法名。
%F:输出日志消息产生时所在的文件名称。
%L::输出代码中的行号。
%m::输出代码中指定的具体日志信息。
%n:输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”。
%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

2. 生成不同业务模块的日志:

在配置文件中进行配置:

log4j.logger.dbService=INFO,dbService
log4j.appender.dbService=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dbService.File = /logs/dbService/dbService.log
log4j.appender.dbService.DatePattern='.'yyyy-MM-dd
log4j.appender.dbService.layout=org.apache.log4j.PatternLayout
log4j.appender.dbService.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

在程序中引用:

public class CustomerService {
    private Logger logger = Logger.getLogger("dbService");

    public List getCustomer() {
        logger.info("从数据库获取客户信息" );
        return customerList;
    }

 

你可能感兴趣的:(Java)