如何实现log4j appender?

时间:2014-07-29 19:54:54

标签: java logging log4j

由于我们的服务器现在处理通用系统输出日志记录的方式,因此我们的应用程序需要使用logj4来创建文件日志。

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

1 个答案:

答案 0 :(得分:0)

您只能定义一个rootLogger。我猜你正在尝试登录文件和控制台。在这种情况下,您需要以下内容:

log4j.rootLogger = DEBUG,是ConsoleAppender,LogFramework

看到这个问题:

how to make log4j to write to the console as well