log4j的使用
来源:互联网 发布:欢乐百世淘宝 编辑:程序博客网 时间:2024/05/16 14:24
log4j简介
log4j 最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
1. 定义配置文件
Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。
下面将介绍使用log4j.properties文件作为配置文件的方法:
①配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是:ERROR、WARN、INFO、DEBUG。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。
②配置日志信息输出目的地Appender,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
③配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1 … log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
2. 在代码中使用Log4j
①得到记录器
使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public static Logger getLogger( String name)
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
②读取配置文件
当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
<span style="font-size:18px;">BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。</span><span style="font-size:18px;">例:PropertyConfigurator.configure(".\\src\\log4j.properties")DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。</span>
③插入记录信息(格式化日志信息)
当上两个必要步骤执行完毕,就可轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
<span style="font-size:18px;">Logger.debug ( Object message ) ;Logger.info ( Object message ) ;Logger.warn ( Object message ) ;Logger.error ( Object message ) ;</span>
3. 具体实例
①log4j.properties:
<span style="font-size:18px;">log4j.rootLogger=INFO, R, A2log4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=d:/log.txtlog4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d [%-5p][%t] - %m%nlog4j.appender.R.Threshold = WARN log4j.appender.A2=org.apache.log4j.ConsoleAppenderlog4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%d [%-5p][%t] - %m%n</span>
②测试代码
<span style="font-size:18px;">public class TestLog4j { static Logger logger = Logger.getLogger(TestLog4j.class.getName()); public static void main(String[] args) { PropertyConfigurator.configure ( ".\\src\\log4j.properties"); logger.debug("Debug ..."); logger.info("Info ..."); logger.warn("Warn ..."); logger.error("Error ..."); }}</span>
③ 测试结果
控制台:
<span style="font-size:18px;">2016-09-07 15:31:56,694 [INFO ][main] - Info ...2016-09-07 15:31:56,696 [WARN ][main] - Warn ...2016-09-07 15:31:56,704 [ERROR][main] - Error ...</span>
文件log.txt:
四、补充<span style="font-size:18px;">2016-09-07 15:31:56,696 [WARN ][main] - Warn ...2016-09-07 15:31:56,704 [ERROR][main] - Error ...</span>
log4j日志分级别输出到不同文件
<span style="font-size:18px;">#log4j.rootLogger=info,stdoutdebug,error log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = INFO log4j.appender.info.append=true log4j.appender.info.File=${catalina.home}/logs/log4j/info.log log4j.logger.debug=debug log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender log4j.appender.debug.layout=org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.debug.datePattern='.'yyyy-MM-dd log4j.appender.debug.Threshold = DEBUG log4j.appender.debug.append=true log4j.appender.debug.File=${catalina.home}/logs/log4j/debug.log log4j.logger.warn=warn log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.warn.datePattern='.'yyyy-MM-dd log4j.appender.warn.Threshold = WARN log4j.appender.warn.append=true log4j.appender.warn.File=${catalina.home}/logs/log4j/warn.log log4j.logger.error=error log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = ERROR log4j.appender.error.append=true log4j.appender.error.File=$${catalina.home}/logs/log4j/error.log</span>
- Log4j的使用!
- Log4j的使用
- Log4j的使用
- log4j的第一步使用
- Log4j的使用
- log4j的使用
- Log4j的简单使用
- Log4j的使用
- Log4j的使用
- log4j/log4e的使用
- log4j/log4e的使用
- Log4j 的灵活使用
- log4j/log4e的使用
- log4j的使用
- log4j的使用
- Log4j的使用
- LOG4J的使用- -
- Log4j的使用
- log4net的使用
- 线程同步的几种方法的总结
- java时间
- android 一些重要文件记录
- R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(二,textreuse介绍)
- log4j的使用
- IDEA和git整合问题
- my self for beihang authenticate url
- linux下mysql的root密码忘记解决方法
- ARM的2种状态和7种工作模式
- Ubuntu Server 16.04中文版安装问题
- GCD 常见用法归纳——1
- 不懂技术,怎样开发Android应用?
- poj 1087