log4j使用总结
来源:互联网 发布:淘宝店铺起名字 编辑:程序博客网 时间:2024/06/12 23:43
文章,xml代码部分参考链接http://blog.csdn.net/coolcoffee168/article/details/6368949
一、log4j的使用过程,通用步骤如下:
1.加入log4j-xx.jar——提供相关类的支持2.写log4j.properties或log4j.xml,可自行命名——log4j本身的配置文件
3.载入配置文件,spring环境中可以用spring自带的Log4jConfigListener监听器来加载,只需要通过context-param指定配置文件的位置及加载参数
代码中手动载入的方式是通过 PropertyConfigurator.configure(file)方法来载入
4.获得logger——直接用log4j:Logger logger = Logger.getLogger(“xxx”)
通过commcon-logging : Log logger2 = LogFactory.getLog("mytest");
getLogger的参数既可以指定log4j.xml中配置好的logger、category名字,也可以指定为任意的字符串、test.class。首先会去配置文件中扫描,如果有同名的logger或者category则直接加载使用,如果没有,则创建一个新的logger,名称为指定字符串或者类的全名,打印级别、appender的设置与其上级logger一致,比如rootLogger。如果rootLogger的配置为空,则无法正常打印出日志
5.使用 ——如logger.info()等二、log4j配置文件介绍
1.properties文件
log4j.rootCategory=INFO, stdout , R //日志级别, appender1, appender2//appender1的配置log4j.appender.stdout=org.apache.log4j.ConsoleAppender //appender所对应的支持类log4j.appender.stdout.layout=org.apache.log4j.PatternLayout //指定布局模式,必须同时指定conversionPatternlog4j.appender.stdout.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n //指定具体的输出样式//appender2的配置log4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=${应用名.root}/WEB-INF/logs/xx.log //输出的文件路径log4j.appender.R.MaxFileSize=1024KB //每个日志文件的最大的大小,超过则新建一个文件log4j.appender.R.MaxBackupIndex=10 //新建文件的最大个数log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n // %d:日期时间 %p:打印优先级 %c:类全名 %m:代码中指定的消息 %n:换行
2.xml 文件
xml方式比properties方式使用更为方便,大概模板如下
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> //文档定义 <log4j:configuration> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">...</appender> <appender name="FILE" class="org.apache.log4j.FileAppender">...</appender> <appender name="DATABASE" class="org.apache.log4j.jdbc.JdbcAppender"></appender>\ <logger name="mytest" additivity = "false"> <level value="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> <logger> <category name="dbtest"> <level value="ERROR"> <appender-ref ref="DATABASE"/> <category> <root> <level value="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> </log4j:configuration>如上所示,给出了一个标准的log4j的xml格式的配置文件。 (1)appender元素给出了日志输出目的地的定义,不同种类的appender,其对应的具体参数均不同,但都会指定layout,通常指定为PatternLayout,一旦 指定了PatternLayout布局方式,就要指定其输出样式ConversionLayout。通常ConversionLayout为表达式,但是当appender类型为JdbcAppender时,value 为insert语句,如INSERT INTO iecs.log4j(stamp,thread, info_level,`class`,message) VALUES ('%d', '%t', '%p', '%c', '%m'),表格需要事先建好。 (2)category 和 logger都可以用来定义一个日志输出器,可以在加载Logger的时候指定需要加载的日志输出器名字。如Logger.getLogger("mytest"), level是日志打印级别,appender-ref 指定了所引用的appender。
(3)如果定义了上述root节点,则在打印日志信息的时候,会发现日志被重复打印了。解决这个问题,要么去掉root节点的定义;要么加上 addtivity="false"属性。
附上完整的配置代码
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d - %c -%-4r [%t] %-5p %x - %m%n" /> </layout> <!--限制输出级别--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="ERROR"/> <param name="LevelMin" value="TRACE"/> </filter> </appender> <appender name="FILE" class="org.apache.log4j.FileAppender"> <param name="File" value="${catalina.home}/logs/testxml.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d - %c -%-4r [%t] %-5p %x - %m%n" /> </layout> </appender> <appender name="DATABASE" class="org.apache.log4j.jdbc.JDBCAppender"> <param name="URL" value="jdbc:mysql://10.47.180.190:5518/mydb"/> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="user" value="root"/> <param name="password" value="*****"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="INSERT INTO iecs.log4j(stamp,thread, info_level,`class`,message) VALUES ('%d', '%t', '%p', '%c', '%m')" /> </layout> </appender> <!-- 发邮件(只有ERROR时才会发送!) --> <appender name="MAIL" class="org.apache.log4j.net.SMTPAppender"> <param name="threshold" value="debug" /> <!-- 日志的错误级别 <param name="threshold" value="fatal"/> --> <!-- 缓存文件大小,日志达到512K时发送Email --> <param name="BufferSize" value="512" /><!-- 单位K --> <param name="From" value="test@163.com" /> <param name="SMTPHost" value="smtp.163.com" /> <param name="Subject" value="juyee-log4jMessage" /> <param name="To" value="test@163.com" /> <param name="SMTPUsername" value="test" /> <param name="SMTPPassword" value="test" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss.SSS} [%p]-[%c] %m%n" /> </layout> </appender> <appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="256" /> <appender-ref ref="DATABASE" /> </appender> <!--通过<logger></logger>的定义可以将各个包中的类日志输出到不同的日志文件中--> <logger name="com.litt2.log4j" additivity="false"> <level value="WARN" /> <appender-ref ref="CONSOLE" /> </logger> <!--通过<category></category>的定义可以将各个包中的类日志输出到不同的日志文件中--> <logger name="mytest" additivity="false"> <level value="DEBUG" /> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </logger> <category name="dbtest"> <priority value="info"/> <appender-ref ref="DATABASE"/> </category> <root> <level value="INFO"></level> <appender-ref ref="CONSOLE"/> </root> </log4j:configuration>
三、载入配置文件
1.Spring方式 监听器+context-param
2.默认加载
如果取名叫做log4j.properties,则log4j会自动载入配置文件,log4j.properties放在classpath下面
3.手动加载
PropertyConfigurator.configure("D:\\develop\\apache-tomcat-6.0.24-spring\\wtpwebapps\\mvctest\\WEB-INF\\classes\\log4jxxxx.properties");
0 0
- 【Log4j】Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结(转载)
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Java中自带的Logger使用
- 2.Activity生命周期、任务栈、启动模式
- ArrayList,java动态数组
- JVM对象引用与内存分配策略
- ScrollView的四种风格&自定义Scrollbar宽度等
- log4j使用总结
- 帮同学做的把T1图像转成TXT格式用于unity 3d输入的小工具
- 【转】数据库设计步骤
- HTML disabled属性的启用和禁止
- OptionSetHelper
- R语言︱LDA主题模型——最优主题数选取(topicmodels)+LDAvis可视化(lda+LDAvis)
- Lecture 2: PLA 演算法
- opencv (opencv3.X) IplImage相互转换mat
- elastic search下载与启动