怎么利用log4j 写日志
如何利用log4j 写日志
我想问下,例如我要将error信息写到 1.log文件里面,
要将正常的信息写到2.log文件;里面,,
想问的是
在log4j.properties里如何的作设置,,
还有在使用的时候怎么用的,,
我自己试了好久都不行
------解决方案--------------------
发个例子让你看看吧.
1.log4j的配置文件.
我想问下,例如我要将error信息写到 1.log文件里面,
要将正常的信息写到2.log文件;里面,,
想问的是
在log4j.properties里如何的作设置,,
还有在使用的时候怎么用的,,
我自己试了好久都不行
------解决方案--------------------
发个例子让你看看吧.
1.log4j的配置文件.
- Java code
# Configuration File for the Logger component in the framework # This property file needs to be accessible in the classpath in order for the # logger to configure properly # set to false to turn off log4j debug statements log4j.debug=true # Turns off logging in log4j # log4j.threshold=OFF log4j.rootLogger=ERROR,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.MaxFileSize=50000KB log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%-4r [%d{ISO8601}] [%t] %-5p %c %x - %m%n # Configuration for Web Logger # log4j.logger.WEB=debug,weblog log4j.appender.weblog=org.apache.log4j.DailyRollingFileAppender log4j.appender.weblog.File=f:/hubstar-web.log log4j.appender.weblog.DatePattern='.'yyyyMM log4j.appender.weblog.layout=org.apache.log4j.PatternLayout log4j.appender.weblog.layout.ConversionPattern=%-4r [%d{ISO8601}] [%t] %-5p %c %x - %m%n # Configuration for BIZ Logger # log4j.logger.BIZ=debug,bizlog log4j.appender.bizlog=org.apache.log4j.DailyRollingFileAppender log4j.appender.bizlog.File=f:/hubstar-biz.log log4j.appender.bizlog.DatePattern='.'yyyyMM log4j.appender.bizlog.layout=org.apache.log4j.PatternLayout log4j.appender.bizlog.layout.ConversionPattern=%-4r [%d{ISO8601}] [%t] %-5p %c %x - %m%n # Configuration for PERSISTENCE Logger # log4j.logger.PERSISTENCE=debug,persistlog log4j.appender.persistlog=org.apache.log4j.DailyRollingFileAppender log4j.appender.persistlog.File=f:/hubstar-persist.log log4j.appender.persistlog.DatePattern='.'yyyyMM log4j.appender.persistlog.layout=org.apache.log4j.PatternLayout log4j.appender.persistlog.layout.ConversionPattern=[%d{ISO8601}] [%t] %-5p %c %x- %m%n # Configuration for Auditor Logger # log4j.logger.AUDITOR=debug,auditorlog log4j.appender.auditorlog=org.apache.log4j.DailyRollingFileAppender log4j.appender.auditorlog.File=f:/hubstar-audit.log log4j.appender.auditorlog.DatePattern='.'yyyyMM log4j.appender.auditorlog.layout=org.apache.log4j.PatternLayout log4j.appender.auditorlog.layout.ConversionPattern=[%d{ISO8601}] [%t] %-5p %c - %m%n log4j.logger.ALERT=debug,alertlog log4j.appender.alertlog=org.apache.log4j.RollingFileAppender log4j.appender.alertlog.File=f:/hubstar-alert.log log4j.appender.alertlog.DatePattern='.'yyyyMM log4j.appender.alertlog.layout=org.apache.log4j.PatternLayout log4j.appender.alertlog.layout.ConversionPattern=[%d{ISO8601}] - %m%n
------解决方案--------------------
2.log4j的类.
- Java code
package com.ufinity.mealsordering.common; public interface ILogger { public abstract String getLoggerType(); public abstract boolean debug(String userId, String method, String message); public abstract boolean debug(String userId, String method, String message, Throwable throwable); public abstract boolean info(String userId, String method, String message); public abstract boolean info(String userId, String method, String message, Throwable throwable); public abstract boolean warn(String userId, String method, String message); public abstract boolean warn(String userId, String method, String message, Throwable throwable); public abstract boolean error(String userId, String method, String message); public abstract boolean error(String userId, String method, String message, Throwable throwable); public abstract boolean fatal(String userId, String method, String message); public abstract boolean fatal(String userId, String method, String message, Throwable throwable); } ------------------------------------------------- package com.ufinity.mealsordering.common; import java.text.MessageFormat; import org.apache.log4j.Level; import org.apache.log4j.Logger; public class LoggerImpl implements ILogger{ private Logger _logger = null; private String _loggerType = null; public LoggerImpl(String type, Logger _logger) { this._loggerType = type; this._logger = _logger; } private static MessageFormat _formatter = new MessageFormat("<< {0} >> [{1}] [{2}]: {3}"); public static String format(String type, String userid, String method, String message) { return _formatter.format(new Object[] { type, method, userid, message }); } public String getLoggerType() { return _loggerType; } public boolean debug(String userId, String method, String message) { return debug(userId, method, message, null); } public boolean debug(String userId, String method, String message, Throwable throwable) { if(_logger.isDebugEnabled()) { if(throwable != null) _logger.debug(format(_loggerType, userId, method, message), throwable); else _logger.debug(format(_loggerType, userId, method, message)); return true; } else { return false; } } public boolean info(String userId, String method, String message) { return info(userId, method, message, null); } public boolean info(String userId, String method, String message, Throwable throwable) { if(_logger.isInfoEnabled()) { if(throwable != null) _logger.info(format(_loggerType, userId, method, message), throwable); else _logger.info(format(_loggerType, userId, method, message)); return true; } else { return false; } } public boolean warn(String userId, String method, String message) { return warn(userId, method, message, null); } public boolean warn(String userId, String method, String message, Throwable throwable) { if(_logger.isEnabledFor(Level.WARN)) { if(throwable != null) _logger.warn(format(_loggerType, userId, method, message), throwable); else _logger.warn(format(_loggerType, userId, method, message)); return true; } else { return false; } } public boolean error(String userId, String method, String message) { return error(userId, method, message, null); } public boolean error(String userId, String method, String message, Throwable throwable) { if(_logger.isEnabledFor(Level.ERROR)) { if(throwable != null) _logger.error(format(_loggerType, userId, method, message), throwable); else _logger.error(format(_loggerType, userId, method, message)); return true; } else { return false; } } public boolean fatal(String userId, String method, String message) { return fatal(userId, method, message, null); } public boolean fatal(String userId, String method, String message, Throwable throwable) { if(_logger.isEnabledFor(Level.FATAL)) { if(throwable != null) _logger.fatal(format(_loggerType, userId, method, message), throwable); else _logger.fatal(format(_loggerType, userId, method, message)); return true; } else { return false; } } } -------------------------------------------------------------------------- 使用方式:public List queryAllGlobalSettings() { String userId = ""; String method = "queryAllGlobalSettings"; List globalSettings = null; try { String hql = "FROM GlobalSetting AS g"; globalSettings = this.find(hql); this.info(userId, method, Constant.LOG_QUERY_SUCCESS); } catch (HibernateException e) { error(userId, method, "hibernate exception", e); //-----log4j使用方式 throw e; } return globalSettings; }