spring + log4j 配置说明
来源:互联网 发布:服务器的80端口是什么 编辑:程序博客网 时间:2024/06/14 20:51
下面使用的log4j 使用maven导入
<dependency> <groupId>apache-log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.8</version></dependency>
一. log4j 配置文件的加载
1. log4j 默认加载类路径下的log4j.properties文件,如果自定义了其他 名称的properties文件的时候,就需要手动加载。
(1).加载xml文件: DOMConfigurator.configure(“C:/properties/log4jConfig.xml”)
(2). 加载properties文件:PropertyConfigurator.configure(“C:/properties/log4jConfig.xml”)
2. 在web中加载log4j配置文件(web.xml)
<!--设置配置文件的路径/WEB-INF/classes/log4jconfig.xml--><context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4jconfig.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
二. log4j 的配置文件(log4jconfig.xml)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!--该配置 参数 详解 见这三篇博客 1. http://www.cnblogs.com/v-weiwang/p/4814050.html 2. http://blog.csdn.net/javaloveiphone/article/details/7994313 3. http://blog.csdn.net/u012540337/article/details/17682625 --> <!-- 输出到控制台 --> <appender name="CONSOLE-APPENDER" class="org.apache.log4j.ConsoleAppender"> <param name="encoding" value="UTF-8" /> <param name="target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%-5p] %d [日志内容:%m]%n" /> </layout> <!-- 使用过滤器设置记录日志的范围 --> <!-- filter过滤器设置输出的级别:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF --> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="off" /> <param name="LevelMin" value="all" /> <param name="AcceptOnMatch" value="true"/> <!-- 详解见http://bbs.csdn.net/topics/350195913 --> </filter> </appender> <!-- debug 该日志主要记录程序中出现的调试异常 --> <appender name="DEBUG-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="${user.home}/logs/debug/debug.out" /> <!-- 日志输出路径 --> <param name="Append" value="true" /> <!-- 默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 --> <param name="encoding" value="GBK" /> <param name="DatePattern" value="'.'yyyy-MM-dd'.out'" /> <!-- 设置每天生产一个日志文件 当然也可以指定按月、周、天、时和分。即对应的格式如下: (1)'.'yyyy-MM'.suffix': 每月 (2)'.'yyyy-ww'.suffix': 每周 (3)'.'yyyy-MM-dd'.suffix': 每天 (4)'.'yyyy-MM-dd-a'.suffix': 每天两次 (5)'.'yyyy-MM-dd-HH'.suffix': 每小时 (6)’.'yyyy-MM-dd-HH-mm'.suffix':每分钟 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%-5p] %d 耗时:%r [日志内容:%l%n%m]%n" /> </layout> <!-- 使用过滤器设置记录日志的范围 --> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="debug" /> <param name="LevelMin" value="debug" /> </filter> </appender> <!-- error 该日志主要记录程序中出现的异常错误 --> <appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="${user.home}/logs/error/error.out" /> <!-- 日志输出路径 --> <param name="Append" value="true" /> <!-- 默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 --> <param name="encoding" value="GBK" /> <param name="DatePattern" value="'.'yyyy-MM-dd'.out'" /> <!-- 每天生产文件的格式是:error.out.2015-05-11.out --> <param name="threshold" value="error"/> <!-- 设置日志类型 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%-5p] %d 耗时:%r [日志内容:%l%n%m]%n" /> </layout> <!-- 使用过滤器设置记录日志的范围 --> <!--<filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="error" /> <param name="LevelMin" value="error" /> </filter> --> </appender> <!-- 指定项目中xx包下面的日志的输出源(appender) --> <!--将logger中的 additivity 属性配置为 false,则这个logger不会将日志流反馈到root中(前提是产生的日 志级别必 须大于level(下面是error级别)设置的级别)。可以达到以logger中配置的appender方式来输出日志而其他地方输出的目--> <logger name="com.xxx.xxx.aop" additivity="false"> <level value="error"></level> <appender-ref ref="ERROR-APPENDER"/> </logger> <!-- root --> <root> <level value="info"></level> <设置为info 其system.out.println()信息才能输出出来> <appender-ref ref="CONSOLE-APPENDER"/> </root></log4j:configuration>
三. 使用spring aop做日志的统一管理。
@Aspect@Componentpublic class ControllerExceptionAspect { static Logger logger = Logger.getLogger(ControllerExceptionAspect.class); /** * 使用aop处理异常 * @param joinPoint * @return */ @Around("bean(xxx) || bean(xxx) || bean(xxx)") public Object process(ProceedingJoinPoint joinPoint){ try { Object val = joinPoint.proceed(); return val; } catch (Throwable e) { logger.error(e.getMessage(), e); if(e instanceof com.xxx.xxx.xxx.ServiceException){ //业务异常(提示信息)返回到页面中 return new JsonResult(e.getMessage()); }else{ return null; } } }}
0 0
- spring + log4j 配置说明
- log4j详细配置说明
- 常用log4j配置说明
- 常用log4j配置说明
- log4j配置简要说明
- log4j+struts配置说明
- log4j配置与说明
- Log4j配置说明
- log4j参数配置说明
- Log4j的配置说明
- Log4j配置 实例说明
- Log4j配置说明
- Log4j配置说明
- log4j配置简单说明
- log4j配置说明
- log4j 的配置说明
- log4j 配置说明
- log4j.properties配置说明
- python小项目之可以发声的翻译软件
- 链栈操作实现
- 大神分享的一个算法题
- java基础
- php知识点记录
- spring + log4j 配置说明
- Eclipse 项目转AndroidStudio
- 顺序表实现学生管理系统
- [leetcode: Python]102. Binary Tree Level Order Traversal
- oracle中的function 、procedure、packages、package bodies比较
- 448. Find All Numbers Disappeared in an Array -- set
- Android开发中RxJava-SQLBrite实时刷新UI
- macOS 启用ftp/telnet/tftp 服务
- tomcat7吗默认JVM设置