Java 如何进行简单的log4j配置?

Java 如何进行简单的log4j配置?,java,tomcat,log4j,Java,Tomcat,Log4j,我想将日志文件添加到我的应用程序中。 为此,我尝试了Appach log4j。在Java代码中,我说: Logger log = Logger.getLogger(uploadfile.class); log.debug("Start"); 我使用以下内容创建文件src\log4j.properties: # ***** Set root logger level to DEBUG and its only appender to A. log4j.rootLo

我想将日志文件添加到我的应用程序中。
为此,我尝试了Appach log4j。在Java代码中,我说:

        Logger log = Logger.getLogger(uploadfile.class);
        log.debug("Start");
我使用以下内容创建文件
src\log4j.properties

# ***** Set root logger level to DEBUG and its only appender to A.
log4j.rootLogger=DEBUG, R, A
log4j.rootLogger=INFO, A

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.MaxFileSize=100mb
log4j.appender.R.MaxBackupIndex=1000
log4j.appender.R.File=c:/uploaded_files/server.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%t] %-5p %c - %m%n


# ***** A is set to be a ConsoleAppender.
log4j.appender.A=org.apache.log4j.ConsoleAppender
# ***** A uses PatternLayout.
log4j.appender.A.Threshold=INFO
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.logger.org.hibernate.type.BasicTypeRegistry=INFO
log4j.logger.com.opensymphony.xwork2.config.providers.XmlConfigurationProvider=INFO
我复制这个。我得到一个错误:

  13.02.2013 9:03:34 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [uploadfile] in context with path [/gis-mrsk-portlet] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager
at org.apache.log4j.Logger.getLogger(Logger.java:117)
at test.uploadfile.doPost(uploadfile.java:35)
我做错了什么?如何配置log4j以实现简单的功能

更新

如果使用此配置,则会得到日志文件,但其为空:

Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE, LOGFILE

Set the enterprise logger priority to FATAL
log4j.logger.org.apache.axis2.enterprise=FATAL
log4j.logger.de.hunsicker.jalopy.io=FATAL
log4j.logger.httpclient.wire.header=FATAL
log4j.logger.org.apache.commons.httpclient=FATAL

 CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %m%n

 LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=C:/uploaded_files/LogFile.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

java.lang.NoClassDefFoundError


看起来您的Apache不知道
org.Apache.log4j.LogManager
的定义。您是否已将必需的jar放入Apache
类路径中?

它似乎是正确的。。您是否正确设置了路径中的log4j库?

问题不在于您的配置,问题在于不存在对catalina的log4j支持—要让它一起工作并不像应该的那样容易。要使log4j与catalina配合使用,请遵循网站上提供的文档

编辑

总结一下我给出的链接:

  • […]将log4j.jar和log4j.properties放入WEB应用程序的WEB-INF/lib和WEB-INF/class中

  • 下载或构建tomcat-juli.jar和tomcat-juli-adapters.jar,它们作为tomcat的“附加”组件提供。有关详细信息,请参阅其他组件文档

  • 在遵循这些步骤之后,您的示例应该已经起作用了

    /编辑


    如果您想要日志记录的简单部分,我建议您使用logback,它为基于tomcat的应用程序提供了本机servlet支持。如果您想在日志记录方面更进一步:clusterlog.net(完全披露我拥有该公司的一部分)

    关于我的配置,您能说些什么?使用它我将在日志中得到什么?尝试删除log4j.rootLogger=INFO,A。使用此配置,您将在控制台(如果您在eclipse中运行应用程序)和指定的文件中拥有调试、信息和错误日志。尝试用log4j.rootLogger=INFO,console,LOGFILE更改log4j.rootCategory=INFO,console,日志文件你最后的评论帮助我!是的,我在项目库中看到了log4j.jar。我无法从这个网站上获得log4j示例。我只是在我答案的链接中添加了相关段落。