自定义Log4j日志记录工具类
2014-05-24 11:39
274 查看
做项目时,有时要根据需求输出一些特定的日志信息,这就需要自定义Log4j,我写了一个简单的Log4jUtils类,供大家参考!
需要的jar:log4j-1.2.15.jar和junit-4.10.jar,可以去网上下载,很容易!
Log4jUtils:
log4j.properties和Log4jUtils同一目录下。
log4j.properties:
TestLog4j:
需要的jar:log4j-1.2.15.jar和junit-4.10.jar,可以去网上下载,很容易!
Log4jUtils:
package hing.study.log4j; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; /** * @author hing * @createTime : 2014-5-24 上午11:17:02 * @description : 自定义Log4jUtils工具类,根据自己的需要来输出特定的信息 */ public class Log4jUtils { /** * Log4j的一个实例 */ private Logger logger; /** * 默认的构造方法 */ public Log4jUtils() { setPropertyConfigurator(); logger = Logger.getLogger(Log4jUtils.class); } /** * 自定义所要输出日志的类的构造方法 * @param clazz */ public Log4jUtils(Class<?> clazz) { setPropertyConfigurator(); logger = Logger.getLogger(clazz); } /** * @desc : 配置Log4j所需要的属性 */ private void setPropertyConfigurator() { String path = this.getClass().getClassLoader() .getResource("hing/study/log4j/log4j.properties").getPath(); PropertyConfigurator.configure(path); } // Level级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL 从左到右Level级别依次降低 public enum LogLevel { OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL }; public void log(LogLevel level, String message) { switch (level) { case OFF: logOFF(message); break; case FATAL: logFATAL(message); break; case ERROR: logERROR(message); break; case WARN: logWARN(message); break; case INFO: logINFO(message); break; case DEBUG: logDEBUG(message); break; case TRACE: logTRACE(message); break; default: logALL(message); break; } } private void logOFF(String message) { } private void logFATAL(String message) { logger.fatal(message); } private void logERROR(String message) { logger.error(message); } private void logWARN(String message) { logger.warn(message); } private void logINFO(String message) { logger.info(message); } private void logDEBUG(String message) { logger.debug(message); } private void logTRACE(String message) { logger.trace(message); } private void logALL(String message) { } public void log(LogLevel level, String message, Throwable t) { switch (level) { case OFF: logOFF(message, t); break; case FATAL: logFATAL(message, t); break; case ERROR: logERROR(message, t); break; case WARN: logWARN(message, t); break; case INFO: logINFO(message, t); break; case DEBUG: logDEBUG(message, t); break; case TRACE: logTRACE(message, t); break; default: logALL(message, t); break; } } private void logOFF(String message, Throwable t) { } private void logFATAL(String message, Throwable t) { logger.fatal(message, t); } private void logERROR(String message, Throwable t) { logger.error(message, t); } private void logWARN(String message, Throwable t) { logger.warn(message, t); } private void logINFO(String message, Throwable t) { logger.info(message, t); } private void logDEBUG(String message, Throwable t) { logger.debug(message, t); } private void logTRACE(String message, Throwable t) { logger.trace(message, t); } private void logALL(String message, Throwable t) { } }
log4j.properties和Log4jUtils同一目录下。
log4j.properties:
log4j.rootLogger=ALL, ca, drfa log4j.appender.ca=org.apache.log4j.ConsoleAppender log4j.appender.ca.layout=org.apache.log4j.PatternLayout log4j.appender.ca.layout.ConversionPattern=%-5p (%F:%L) # %m%n log4j.appender.drfa=org.apache.log4j.DailyRollingFileAppender log4j.appender.drfa.File=lin-error-log.txt log4j.appender.drfa.Append=true log4j.appender.drfa.Threshold = ERROR log4j.appender.drfa.layout=org.apache.log4j.PatternLayout log4j.appender.drfa.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c # %m%n测试:
TestLog4j:
package hing.test.log4j; import hing.study.log4j.Log4jUtils; import hing.study.log4j.Log4jUtils.LogLevel; import org.junit.Test; public class TestLog4j { @Test public void testLog4j(){ Log4jUtils log = new Log4jUtils(TestLog4j.class); log.log(LogLevel.FATAL, "发生严重问题"); log.log(LogLevel.ERROR, "发生错误"); log.log(LogLevel.WARN, "发出警告"); log.log(LogLevel.INFO, "Log4jUtils正常运行"); log.log(LogLevel.DEBUG, "我在测试Log4jUtils"); log.log(LogLevel.TRACE, "我在追踪Log4jUtils"); } }
相关文章推荐
- Java Web Project自定义错误页面,log4j记录日志。
- 两步实现Log4j记录java控制台输出的系统所有异常信息和自定义记录日志---->非常实用,强烈推荐阅读
- ----log4j----按时间和大小增加新日志文件/输出多个自定义日志文件
- 使用Log4j进行日志记录
- 使用commons-logging和log4j记录日志
- hibernate中的LOG4J日志记录
- log4j和commons.logging日志记录的使用方法
- 自定义Appender ,实现输出log4j日志到GUI
- log4j 将控制台的完整异常信息记录到日志文件
- log4j配置相对路径实现日志记录
- log4j配置syslog记录日志
- 在tomcat6中使用log4j记录日志
- 使用commons-logging和log4j记录日志[转载]
- 使用commons-logging和log4j记录日志
- JAVA日志记录,LOG4J
- 即时日志记录:使用 Jabber 增强 log4j 的功能
- log4j和commons.logging日志记录的使用方法
- 使用log4j进行日志记录
- 23.avi 【日志记录:log4j + commons log + jdk log】