首先是级别:
Debug<info<warn<error<fatal
调试的时候级别设置为debug,在输出Exception的时候使用error
配置文件我采用的是log4j.properties
log4j主要有3个组件:loggers,appenders和layouts
logger:日志记录器
appender:日志信息输出目的地
layout:日志格式化
private static Logger logger = Logger.getLogger(当前类名.class.getName());
声明了以上语句就可以在类中使用log4j日志管理了
Appender常用的为console(控制台),file(文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.ConsoleAppender(控制台)
比如如下的配置文件:
log4j.rootLogger=debug,console,file
设置debug级别定义两个输出方向名(console,file)在下面配置两个输出方向信息
log4j.logger.copsec=debug
在copsec包下的文件都使用这个配置文件
log4j.appender.console=org.apache.log4j.ConsoleAppender
输出在控制台
log4j.appender.console.layout=org.apache.log4j.PatternLayout
PatternLayout可以灵活指定布局模式
HTMLLayout以HTML表格形式布局
SimpleLayout包含日志信息的级别和信息字符串
TTCCLaout包含日志产生的时间,线程,类别等等信息
log4j.appender.console.layout.ConversionPattern=%p [%t] (%F:%L) - [%m]%n
%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r输出自应用启动到输出该log信息耗费的毫秒数
%c输出所在类的全名
%t输出产生该日志事件的线程名
%n输出一个回车换行符windows为“\r\n”unix为“\n”
%d输出日志时间点也可指定格式如%d{yyyy MMM dd HH:mm:ss,SSS}
%l输出日志事件的发生位置,包括全类名,发生的线程以及在代码中的行数
如com.Test.main(Test.java:10)
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File= d:/jtester.txt
日志文件输出位置和名称
log4j.appender.file.MaxFileSize= 10MB
文件最大的大小
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p [%t] (%F:%L) - %m%n