log4j怎么保存异常到一个文件啊在property里写如下### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### log file ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File =D:/logs/error.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=warn,stdout,D我在struts 写个出异常的public class ManageAction extends BaseAction {
public ActionForward actionExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try
{
int a=(3/0);
}catch(Exception e)
{
e.printStackTrace();
}
return mapping.findForward("manageLoginFir");
}
}
出了异常为什么不保存到D:/logs/error.log? 还需要另外配置吗,谢谢
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### log file ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File =D:/logs/error.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=warn,stdout,D我在struts 写个出异常的public class ManageAction extends BaseAction {
public ActionForward actionExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try
{
int a=(3/0);
}catch(Exception e)
{
e.printStackTrace();
}
return mapping.findForward("manageLoginFir");
}
}
出了异常为什么不保存到D:/logs/error.log? 还需要另外配置吗,谢谢
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfilelog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=D:/logs/error.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
try
{
int a=(3/0);
}catch(Exception e)
{
logger.warn(e.printStackTrace());
}
return mapping.findForward("manageLoginFir");
}
log4j.rootCategory=INFO, consoleLog, fileLoglog4j.appender.consoleLog=org.apache.log4j.ConsoleAppender
log4j.appender.consoleLog.Target = System.out
log4j.appender.consoleLog.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleLog.layout.ConversionPattern=STBSYSAP %d{yyyy-MM-dd HH:mm:ss,SSS} %p %C{1} %m%nlog4j.appender.fileLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileLog.File = C:/error/error.log
log4j.appender.fileLog.layout = org.apache.log4j.PatternLayout
log4j.appender.fileLog.layout.ConversionPattern=STBSYSAP %d{yyyy-MM-dd HH:mm:ss,SSS} %p %C{1} %m%n
不是自动的吗,还有必要自己写logger.warn(e.printStackTrace());?
我把log4j.appender.D.Threshold = debug的时候,它就会自动在log里面记录一些系统信息,不用手动去写,但是异常就记录不了
logger.debug("some info");
logger.info("some info");
logger.warn("some info");
logger.error("some info");
基本就这几种用法.