log4j:警告没有appender可以发现logging(运行jar文件,而不是web应用程序)

首先 – 是的,我已经阅读了关于这个主题的多个问题和答案,并且不能得到任何帮助我的解决scheme。 我没有运行Tomcat或JBoss,也没有要更改的web.xml文件。 我正在使用Java 6.0和log4j-1.2.8.jar

我正在用IDEA IntelliJ创build一个可运行的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. 

我的log4jconfiguration文件(我把它放在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: %c{2} - %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: %c{2} - %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: %c{2} - %m%n 

而且我已经在mydir和mydir / code中创build了log /目录,以防万一。

有任何想法吗?

有很多可能的选项来指定你的log4jconfiguration。 一个是文件被命名为“log4j.properties”,并在您的类path。 另一种方法是将其命名,然后在启动Java时将System属性添加到命令行中,如下所示:

 -Dlog4j.configuration=file:///path/to/your/log4j.properties 

所有这些在这里概述http://logging.apache.org/log4j/1.2/manual.html#defaultInit

  1. 下载log4j.jar文件
  2. 添加log4j.jar文件来构buildpath
  3. 通话logging器:

     private static org.apache.log4j.Logger log = Logger.getLogger(MyLogger.class); 
  4. 如果log4j属性不存在,则在bin目录中创build新文件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 %c{2} - %m%n 

我已经将我的log4j.properties移动到资源文件夹,它对我来说工作得很好!

人,我在我的一个eclipse项目中遇到了问题,令人惊讶的是,问题是我的.project文件中的jar文件的顺序。 信不信由你!

您将在solr / examples / resources中findde log4j.properties

如果你没有find这个文件,我把它放在这里:

 # 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 - %d{yyyy-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 

问候

将您的log4j.properties文件移动到src文件夹中。 打开Windows资源pipe理器,浏览到您的项目所在的目录。浏览至bin目录并删除其中的所有文件夹

现在在eclipse中点击project —-> clean —-> OK

这将迫使它重新构build项目,从bin目录删除所有内容将被重新创build。

我花了一段时间来解决这个问题。 有时直接点击清理不起作用

把具有属性文件的文件夹login到Java构buildpath源。 您可以通过右键单击项目来添加它—-> build path —–> configure build path ——> add t