logj4上的Apache手册(http://logging.apache.org/log4j/1.2/manual.html)在如何为logj4创建框架方面做得很好,但是在将这个框架放入我的应用程序后,我发现appender并没有得到实现 - 我可以很好地将事情记录到控制台,但我不知道如何设置记录到appender。
我明显遗漏了一些东西,但我不知道是什么因为我之前从未设置过logj4 appender。我的supsicion是我必须在应用程序中声明用法,但Apache手册页并没有显示如何在Java类中声明一个appender,所以要么我错过了那部分指令,要么试图错误地实现这一点。
我的log4j基本上已经设置,如Apache手册页所示,部分基于这两篇博文http://www.developer.com/open/article.php/3097221/Logging-with-log4jmdashAn-Efficient-Way-to-Log-Java-Applications.htm http://veerasundar.com/blog/2009/07/log4j-tutorial-adding-log4j-logging-to-your-project/
我的假设是,以下行不足以实现appender(logger已在我的java类的开头声明):
logger.info("This is a successful log NUMBER NINE THOUSAAAAND");
那么在使用logj4时我需要采取哪些额外的步骤(假设我已经正确安装了框架)?
编辑:根据要求,这是我的.properties文件的样子,为了安全性编辑了实际的文件名和服务器扩展。
#define the console appender
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
# now define the layout for the appender
log4j.appender.consoleAppender.layout=full.server.extension.framework.logging.CustomLoggingPatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%p:%d{dd MMM yyyy HH:mm:ss,SSS}:%c() %m
# now map our console appender as a root logger, means all log messages will go to this appender
log4j.rootLogger = DEBUG, consoleAppender
log4j.logger.LoggingFramework=INFO,LogFramework
log4j.appender.LogFramework=org.apache.log4j.RollingFileAppender
log4j.appender.LogFramework.File=/applogs/appname/appnameLogs.log
log4j.appender.LogFramework.MaxFileSize=1MB
log4j.appender.LogFramework.MaxBackupIndex=10
log4j.appender.LogFramework.layout=us.ny.state.labor.framework.logging.CustomLoggingPatternLayout
log4j.appender.LogFramework.layout.ConversionPattern=%p:%d{dd MMM yyyy HH:mm:ss,SSS}:%c() %m
log4j.rootLogger = INFO, rollingFile
答案 0 :(得分:0)
您只能定义一个rootLogger。我猜你正在尝试登录文件和控制台。在这种情况下,您需要以下内容:
log4j.rootLogger = DEBUG,是ConsoleAppender,LogFramework
看到这个问题: