log4j:警告找不到记录器的附加程序(运行 jar 文件,而不是 Web 应用程序)[重复]
Posted
技术标签:
【中文标题】log4j:警告找不到记录器的附加程序(运行 jar 文件,而不是 Web 应用程序)[重复]【英文标题】:log4j:WARN No appenders could be found for logger (running jar file, not web app) [duplicate] 【发布时间】:2012-07-03 20:37:01 【问题描述】:首先 - 是的,我已阅读有关此主题的多个问题和答案,但无法获得其中的任何解决方案来帮助我。我没有运行 Tomcat 或 JBoss,也没有要更改的 web.xml
文件。我正在使用 Java 6.0 和 log4j-1.2.8.jar
。
我正在使用 IDEA IntelliJ 创建一个可运行的 jar 文件,其中 jar 库单独打包并通过清单链接。因此,我在 Linux 服务器上运行我的代码:
me@server:/mydir> java -jar code/myjar.jar
log4j:WARN No appenders could be found for logger (FactoredEventsForTrna).
log4j:WARN Please initialize the log4j system properly.
我的 log4j 配置文件(我已将其放在 mydir
和 mydir/code
中,以防万一)是:
## Logger configure file for myproject
log.dir=log/
datestamp=yyyy-MM-dd/HH:mm:ss.SSS
log4j.rootLogger=TRACE, file, proappender, console
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=1GB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=log/mydebug.log
log4j.appender.file.threshold=TRACE
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d$datestamp %5p: %c2 - %m%n
log4j.appender.proappender=org.apache.log4j.RollingFileAppender
log4j.appender.proappender.maxFileSize=5GB
log4j.appender.proappender.Threshold=INFO
log4j.appender.proappender.File=log/myinfo.log
log4j.appender.proappender.layout=org.apache.log4j.PatternLayout
log4j.appender.proappender.layout.ConversionPattern=%d$datestamp %5p: %c2 - %m%n
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d$datestamp %5p: %c2 - %m%n
我在mydir
和mydir/code
中创建了log/
目录,以防万一。
有什么想法吗?
【问题讨论】:
文件未被读取。考虑委托给 jboss 日志记录 “是的,我已经阅读了关于这个主题的多个问题和答案”所以你说。 “无法获得任何解决方案来帮助我”:您没有实际上告诉我们您尝试了什么以及它们是如何失败的。 【参考方案1】:有许多可能的选项来指定您的 log4j 配置。一种是文件被准确命名为“log4j.properties”并位于您的类路径中。另一种方法是随心所欲地命名它,并在启动 Java 时将系统属性添加到命令行,如下所示:
-Dlog4j.configuration=file:///path/to/your/log4j.properties
所有这些都在这里列出http://logging.apache.org/log4j/1.2/manual.html#defaultInit
【讨论】:
我总是忘记“file:”前缀!在 Windows 中:“-Dlog4j.configuration=file:C:\ApplicationTools\...” 对于正在寻找类似问题解决方案的其他人:传递 -Dlog4j.debug 确实有助于调查【参考方案2】:解决方案
-
下载
log4j.jar
文件
将log4j.jar
文件添加到构建路径
通话记录者:
private static org.apache.log4j.Logger log
= Logger.getLogger(<class-where-this-is-used>.class);
如果log4j属性不存在,则在bin目录下新建文件log4j.properties文件:
/workspace/projectdirectory/bin/
示例 log4j.properties 文件
log4j.rootLogger=debug, 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=%t %-5p %c2 - %m%n
【讨论】:
什么是 MyLogger.class。我需要在这里确切地放什么?我收到此错误 log4j:WARN No appenders could be found for logger (com.company.Main)。 final static Logger logger = Logger.getLogger(Main.class); ConversionPattern 末尾有一个错位的空格,以防有人想知道为什么他的控制台输出看起来很奇怪。 欢迎访问我的网站以获取有关 Web 开发的一些建议:sysdotoutdotprint.com【参考方案3】:我已将 log4j.properties 移动到资源文件夹中,它对我来说很好!
【讨论】:
默认情况下java项目没有资源文件夹。所以我们需要创建一个。将 log4j.properties 文件放入此文件夹。对于 intelli Idea,右键单击此资源文件夹,选择“将目录标记为”,然后选择“资源根目录”。【参考方案4】:伙计,我在我的一个 Eclipse 项目中遇到了问题,令人惊讶的是,问题在于我的 .project 文件中 jar 的顺序。信不信由你!
【讨论】:
【参考方案5】:您将在 solr/examples/resources 中找到 de log4j.properties。
如果找不到文件,我把它放在这里:
# Logging level
solr.log=logs/
log4j.rootLogger=INFO, file, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n
#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9
#- File to log to and log format
log4j.appender.file.File=$solr.log/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %dyyyy-MM-dd HH:mm:ss.SSS; %C; %m\n
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN
# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF
问候
【讨论】:
【参考方案6】:将您的 log4j.properties 文件移动到 src 文件夹中。 打开 Windows 资源管理器,浏览到您的项目所在的目录。 浏览到 bin 目录并删除其中的所有文件夹。
现在在eclipse中点击项目---->clean---->OK
这将迫使它重新构建项目,从 bin 目录中删除的所有内容都将重新创建。
我花了一段时间才弄清楚这一点。 有时直接点击清理不起作用
【讨论】:
【参考方案7】:将包含用于登录的属性文件的文件夹放入java构建路径源中。您可以通过右键单击项目来添加它---->构建路径----->配置构建路径-->添加t
【讨论】:
以上是关于log4j:警告找不到记录器的附加程序(运行 jar 文件,而不是 Web 应用程序)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
idea提示log4j:WARN No appenders could be found for logger