
例子
配置:
############# 日志输出到控制台 #############
# 通过根元素指定日志输出的级别、目的地
# 日志输出的优先级: debug < info < warn < error
log4j.rootLogger=INFO,CONSOLE,FILE
# 日志输出到控制台使用的api类
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %p %c.%M()-%m%n
############# 日志输出到文件 #############
log4j.appender.FILE = org.apache.log4j.DailyRollingFileAppender
# 当前日志信息追加到文件的末尾
log4j.appender.FILE = org.apache.log4j.RollingFileAppender
# 文件参数,指定日志文件的路径(此处是输出到E:/log/myLog.log)
log4j.appender.FILE.File = E:/log/myLog.log
# 文件参数,指定日志文件的最大大小
log4j.appender.FILE.MaxFileSize = 10MB
log4j.appender.FILE.Threshold = ALL
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
代码:
public class TestLog {
public static void main(String[] args) {
System.out.println("业务开始");
PropertyConfigurator.configure("E:\\eclipse-jee-mars-2-win32-x86_64\\workspace\\MyTestProject\\src\\log4j.properties");
Logger logger = LoggerFactory.getLogger(TestLog.class);
logger.info("张三");
System.out.println("业务结束");
}
}

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