我想问下,例如我要将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 statementslog4j.debug=true# Turns off logging in log4j# log4j.threshold=OFFlog4j.rootLogger=ERROR,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.MaxFileSize=50000KBlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%-4r [%d{ISO8601}] [%t] %-5p %c %x - %m%n# Configuration for Web Logger#log4j.logger.WEB=debug,webloglog4j.appender.weblog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.weblog.File=f:/hubstar-web.loglog4j.appender.weblog.DatePattern='.'yyyyMMlog4j.appender.weblog.layout=org.apache.log4j.PatternLayoutlog4j.appender.weblog.layout.ConversionPattern=%-4r [%d{ISO8601}] [%t] %-5p %c %x - %m%n# Configuration for BIZ Logger#log4j.logger.BIZ=debug,bizloglog4j.appender.bizlog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.bizlog.File=f:/hubstar-biz.loglog4j.appender.bizlog.DatePattern='.'yyyyMMlog4j.appender.bizlog.layout=org.apache.log4j.PatternLayoutlog4j.appender.bizlog.layout.ConversionPattern=%-4r [%d{ISO8601}] [%t] %-5p %c %x - %m%n# Configuration for PERSISTENCE Logger#log4j.logger.PERSISTENCE=debug,persistloglog4j.appender.persistlog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.persistlog.File=f:/hubstar-persist.loglog4j.appender.persistlog.DatePattern='.'yyyyMMlog4j.appender.persistlog.layout=org.apache.log4j.PatternLayoutlog4j.appender.persistlog.layout.ConversionPattern=[%d{ISO8601}] [%t] %-5p %c %x- %m%n# Configuration for Auditor Logger#log4j.logger.AUDITOR=debug,auditorloglog4j.appender.auditorlog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.auditorlog.File=f:/hubstar-audit.loglog4j.appender.auditorlog.DatePattern='.'yyyyMMlog4j.appender.auditorlog.layout=org.apache.log4j.PatternLayoutlog4j.appender.auditorlog.layout.ConversionPattern=[%d{ISO8601}] [%t] %-5p %c - %m%nlog4j.logger.ALERT=debug,alertloglog4j.appender.alertlog=org.apache.log4j.RollingFileAppenderlog4j.appender.alertlog.File=f:/hubstar-alert.loglog4j.appender.alertlog.DatePattern='.'yyyyMMlog4j.appender.alertlog.layout=org.apache.log4j.PatternLayoutlog4j.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; }