【问题标题】:Log file not being updated/created using log4j in java未在 java 中使用 log4j 更新/创建日志文件
【发布时间】:2012-09-17 20:06:41
【问题描述】:

我正在尝试使用 Java 中的 log4j 捕获日志。可执行文件在 linux 环境中,它显示日志消息,但是,它没有写入日志文件。我正在使用 log4j.xml,这就是我目前所拥有的

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <appender name="LocalFileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File"   value="logs/error.log" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="500KB" />
    <param name="maxBackupIndex" value="1" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p [%c] - %m%n"/>
      </layout>
  </appender>

  <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.SimpleLayout"/>
  </appender>

  <root>
    <priority value ="Debug" />
    <appender-ref ref="console" /> 
  </root>
</log4j:configuration>

我不清楚java程序如何知道xml文件的位置。我认为这就是问题所在。而且,这就是我在代码中的设置方式,

log = Logger.getLogger(MyClass.class);

BasicConfigurator.configure();

任何帮助都会感谢它。谢谢。

【问题讨论】:

    标签: java log4j


    【解决方案1】:

    您可以将 log4j.xml 文件放在应用程序的类路径中,log4j 会在您第一次使用 log4j 时自动找到它来配置自己。

    但是,通过调用 BasicConfigurator.configure(),您将撤消 XML 文件所做的任何配置 - 因为这只会为根记录器设置控制台附加程序。

    使用-Dlog4j.debug 运行您的java 程序,让log4j 在启动时输出一堆关于它在哪里寻找配置文件的信息。

    【讨论】:

    • 谢谢。看起来它没有找到 xml 文件,我如何设置类路径?就像,Classpath=/mylog/log4j.xml?再次感谢。
    • 好的,我现在知道了。感谢您的帮助。
    【解决方案2】:

    1) 在 Windows 环境中, 即使所有参数都正确,也需要确保文件的路径是绝对路径,并且用“/”而不是普通的“\”分隔。

    在决定路径时,“\”被忽略,因此它成为一个大名称。

    因此看起来似乎什么都没写,实际上它是在不同的地方写的。 :)

    2) 在 Eclipse 上,尝试“matt B”上一个答案所建议的选项..

    转到 RUN > RUN Configurations > Arguments [tab] 并在 VM arguments > Apply 和 RUN 中输入值。 显然你的文件应该有 main..

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 1970-01-01
      • 2018-07-11
      • 2021-01-18
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多