javaEE开发之使用log4j记录日志
来源:互联网 发布:未来java的发展前景 编辑:程序博客网 时间:2024/05/16 16:57
web开发中,当项目开发完毕后,可能会有些bug存在,程序出现bug后,如何快速定位并修改,就需要对这些程序的运行过程做一个记录,并保存起来,以便维护。
常用的是使用log4j框架,通过自定义日志级别,然后在代码中打下日志。
首先,写一个工具类LogUtil:
import org.apache.log4j.Level;import org.apache.log4j.Logger;import org.apache.log4j.net.SyslogAppender;/** * 自定义级别日志定义log方法 */public class LogUtil {// 自定义等级private static final Level CUSTOM_LEVEL = new CustomLevel(25000, "CUSTOM",SyslogAppender.LOG_LOCAL0);// 单例模式private static LogUtil logUtil = new LogUtil();private LogUtil() {}private static Logger loggerCustom = null;public static LogUtil getLogUtil(Object message) {loggerCustom = Logger.getLogger(message.toString().substring(6));return logUtil;}public void customLog(Object message) {loggerCustom.log(CUSTOM_LEVEL, message);}}然后,自定义一个日志级别过滤器CustomLogFilter:
import org.apache.log4j.spi.Filter;import org.apache.log4j.spi.LoggingEvent;/** * 自定义日志级别过滤器 * */public class CustomLogFilter extends Filter {boolean acceptOnMatch;int levelMin;int levelMax;public int getLevelMin() {return levelMin;}public void setLevelMin(int levelMin) {this.levelMin = levelMin;}public int getLevelMax() {return levelMax;}public void setLevelMax(int levelMax) {this.levelMax = levelMax;}public boolean isAcceptOnMatch() {return acceptOnMatch;}public void setAcceptOnMatch(boolean acceptOnMatch) {this.acceptOnMatch = acceptOnMatch;}@Overridepublic int decide(LoggingEvent lgEvent) {int inputLevel = lgEvent.getLevel().toInt();if (inputLevel >= levelMin && inputLevel <= levelMax) {return 0;}return -1;}}之后,自定义一个日志级别类,CustomLevel:
import org.apache.log4j.Level;/** * * 自定义Custom级别 * */public class CustomLevel extends Level {private static final long serialVersionUID = 1L;public CustomLevel(int level, String levelStr, int syslogEquivalent) {super(level, levelStr, syslogEquivalent);}}最后,在log4j.xml中配置如下信息:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd"><log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'><!-- 输出到控制台 --><appender name="myConsole" class="org.apache.log4j.ConsoleAppender"><!-- 输出格式 --><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%-5p] [%d{yyyy年MM月dd日 HH:mm:ss,SSS\}] %c - %m%n" /></layout><!--过滤器设置输出的级别 --><filter class="com.telek.utils.CustomLogFilter"><param name="levelMin" value="25000" /><param name="levelMax" value="25000" /><param name="AcceptOnMatch" value="true" /></filter></appender><!-- 输出到指定文件 --><appender name="Info" class="org.apache.log4j.RollingFileAppender"><param name="File"value="E:/WorkspaceForJava/UsedMallMinaServer/WebRoot/log/info.log" /><!-- 设置日志输出文件名 --><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --><param name="Append" value="true" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%-5p] [%d{HH:mm:ss}] %c - %m%n" /></layout><!-- 过滤级别为只有info信息 --><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="levelMin" value="INFO" /><param name="levelMax" value="INFO" /><param name="AcceptOnMatch" value="true" /></filter></appender><appender name="Debug" class="org.apache.log4j.RollingFileAppender"><param name="File"value="E:/WorkspaceForJava/UsedMallMinaServer/WebRoot/log/debug.log" /><!-- 设置日志输出文件名 --><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --><param name="Append" value="true" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%-5p] [%d{yyyy年MM月dd日 HH:mm:ss}] %c - %m%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="levelMin" value="DEBUG" /><param name="levelMax" value="DEBUG" /><param name="AcceptOnMatch" value="true" /></filter></appender><appender name="Warn" class="org.apache.log4j.RollingFileAppender"><param name="File"value="E:/WorkspaceForJava/UsedMallMinaServer/WebRoot/log/warn.log" /><!-- 设置日志输出文件名 --><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --><param name="Append" value="true" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%-5p] [%d{yyyy年MM月dd日 HH:mm:ss}] %c - %m%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="levelMin" value="WARN" /><param name="levelMax" value="WARN" /><param name="AcceptOnMatch" value="true" /></filter></appender><appender name="Error" class="org.apache.log4j.RollingFileAppender"><param name="File"value="E:/WorkspaceForJava/UsedMallMinaServer/WebRoot/log/error.log" /><!-- 设置日志输出文件名 --><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --><param name="Append" value="true" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%-5p] [%d{yyyy年MM月dd日 HH:mm:ss}] %c - %m%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="levelMin" value="ERROR" /><param name="levelMax" value="ERROR" /><param name="AcceptOnMatch" value="true" /></filter></appender><appender name="MinaCustom" class="org.apache.log4j.RollingFileAppender"><param name="File"value="E:/WorkspaceForJava/UsedMallMinaServer/WebRoot/log/custom.log" /><!--设置日志输出文件名 --><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --><param name="Append" value="true" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%-5p] [%d{yyyy年MM月dd日 HH:mm:ss,SSS\}] - %m%n" /></layout><filter class="com.telek.utils.CustomLogFilter"><param name="levelMin" value="25000" /><param name="levelMax" value="25000" /><param name="AcceptOnMatch" value="true" /></filter></appender><root><level value="ALL" /><appender-ref ref="myConsole" /><appender-ref ref="Info" /><appender-ref ref="Debug" /><appender-ref ref="Warn" /><appender-ref ref="Error" /><appender-ref ref="MinaCustom" /></root></log4j:configuration>
0 0
- javaEE开发之使用log4j记录日志
- 使用log4j记录日志
- 使用log4j记录日志
- 使用log4j记录日志
- 使用Log4j记录日志
- 使用log4j记录日志
- 使用Log4j记录日志
- 使用log4j记录日志
- LOG4J日志使用记录
- 开发日志记录工具log4j
- J2EE--日志记录之log4j
- 使用Log4j进行日志记录
- 使用log4j进行日志记录
- 使用log4j进行日志记录
- 使用log4j记录日志文件
- 使用日志记录工具log4j
- 如何使用log4j记录日志
- 如何使用log4j记录日志
- 猴子选王-链表水题
- zoj 3795 Grouping 强连通缩点+拓扑排序最长链
- oracle 数据库支持生命周期表
- Android操作系统11种传感器[转]
- 子网掩码的设置
- javaEE开发之使用log4j记录日志
- 一张图看清楚成功人士与失败人士的差别,成功人士的10个标志
- 使用
- C# WinForm获取当前路径汇总
- 智能系统平台专业实验 人脸识别
- fastjson 的简单使用
- 设计模式 外观模式 一键电影模式
- LA3026 - Period(KMP)
- 在sql server中利用with as实现递归功能