基本配置
log4j.rootLogger = [ level ] , appenderName , appenderName1 , …
log4j.appender.appenderName = fully.qualified.name.of.appender.class   
log4j.appender.appenderName.option = value1 
log4j.appender.appenderName.optionN = valueN
appender.appenderName.layout = fully.log4j.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
log4j.appender.appenderName.layout.optionN = valueN
- 其中level是日志输出级别,从低到高有DEBUG、INFO、WARN、ERROR
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来
- appenderName是日志输出位置配置的命名,其中log4j.appender.appenderName = fully.qualified.name.of.appender.class 应换成以下信息输出的目的地
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
- appender.appenderName.layout = fully.log4j.qualified.name.of.layout.class格式布局应换成以下信息
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
- log4j.appender.appenderName.option中option应替换的属性/选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意味着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台
Threshold=DEBUF:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
- RollingFileAppender 每天生成一个文件选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB.在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
- 配置示例
og4j.rootLogger=DEBUG, consoleLog, toINFO, toERROR
log4j.appender.consoleLog=org.apache.log4j.ConsoleAppender
log4j.appender.consoleLog.Threshold=INFO
log4j.appender.consoleLog.Target=System.out
log4j.appender.consoleLog.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleLog.layout.ConversionPattern=[%d{yyyy/MM/dd HH:mm:ss}][%p][%C{1}] %m%n
log4j.appender.toINFO=org.apache.log4j.DailyRollingFileAppender
log4j.appender.toINFO.file=${catalina.home}/logs/octopusweb_info.log
log4j.appender.toINFO.Threshold=INFO
log4j.appender.toINFO.layout=org.apache.log4j.PatternLayout
log4j.appender.toINFO.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-4r %-5p [%t] %37c %3x - %m%n
log4j.appender.toERROR=org.apache.log4j.DailyRollingFileAppender
log4j.appender.toERROR.file=${catalina.home}/logs/octopusweb_error.log
log4j.appender.toERROR.Threshold=ERROR
log4j.appender.toERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.toERROR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-4r %-5p [%t] %37c %3x - %m%n
- 代码使用
1、使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public static Logger getLogger( String name)
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
2、当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure():自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure(String filename):读取XML形式的配置文件。
3、插入记录信息(格式化日志信息)
Logger.debug(Object message);
Logger.info(Object message);
Logger.warn(Object message);
Logger.error(Object message);
- 记录日志到指定文件
log4j.logger.cacheERROR=ERROR,cacheERROR
log4j.additivity.cacheERROR=false
log4j.appender.cacheERROR=org.apache.log4j.RollingFileAppender
log4j.appender.cacheERROR.file=${catalina.home}/logs/octopuscache_error.log
log4j.appender.cacheERROR.Threshold=ERROR
log4j.appender.cacheERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.cacheERROR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-4r %-5p [%t] %37c %3x - %m%n
log4j.appender.cacheERROR.MaxFileSize=13142880
log4j.appender.cacheERROR.MaxBackupIndex=3
- 参考文档
blog.csdn.net/u013870094/article/details/79518028