Java Apache Log4j Log4j.xml配置多个错误

Java Apache Log4j Log4j.xml配置多个错误,java,configuration,log4j,Java,Configuration,Log4j,我想以前可能有人问过。但它还有一些关于如何使用该房产的额外问题。这是我的log4j.xml:- <?xml version="1.0" encoding="UTF-8"?> <Configuration> <Properties> <Property name="myinfo">INFO</Property> <Property name="mywarn" value="WARN"/> &l

我想以前可能有人问过。但它还有一些关于如何使用该房产的额外问题。这是我的log4j.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
   <Properties>
      <Property name="myinfo">INFO</Property>
      <Property name="mywarn" value="WARN"/>
  </Properties>

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <param name="threshold" value="info" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level Line: %L  - %msg%n" />
    </layout>
</appender>


<appender name="LOGFILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="c:/temp/logfile.log" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="2MB" />
    <param name="MaxBackupIndex" value="2" />
    <priority value="WARN" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level Line: %L  - %msg%n" />
    </layout>
</appender>


<appender name="UNMAPFILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="c:/temp/unmapped.log" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="2MB" />
    <param name="MaxBackupIndex" value="2" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
               value="%d [%t] %-5p %c - %m%n" />
    </layout>
</appender>


<category name="com.ma.dev" additivity="false">
    <priority value="INFO" />  <!-- <priority value="${myinfo}" /> --> 
    <appender-ref ref="STDOUT" />
    <appender-ref ref="LOGFILE" />
</category>


<root>
    <priority value="WARN" />
    <appender-ref ref="UNMAPFILE" />
</root>

  </Configuration>
我收到以下错误/警告:-

log4j:WARN Continuable parsing error 2 and column 16
log4j:WARN Document root element "Configuration", must match DOCTYPE root "null".
log4j:WARN Continuable parsing error 2 and column 16
log4j:WARN Document is invalid: no grammar found.
log4j:ERROR DOM element is - not a <log4j:configuration> element.
log4j:WARN No appenders could be found for logger (com.ma.dev.App).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Hello World!

Process finished with exit code 0
log4j:WARN Continuable解析错误2和第16列
log4j:WARN文档根元素“Configuration”,必须与DOCTYPE root“null”匹配。
log4j:WARN Continuable解析错误2和第16列
log4j:警告文档无效:未找到语法。
log4j:错误DOM元素是-不是元素。
log4j:WARN找不到记录器(com.ma.dev.App)的追加器。
log4j:警告请正确初始化log4j系统。
log4j:请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 更多信息。
你好,世界!
进程已完成,退出代码为0
在log4j.xml文件中,我有以下属性:-

<Properties>
     <Property name="myinfo">INFO</Property>
     <Property name="mywarn" value="WARN"/>
</Properties>

信息
我想使用此属性将优先级更改为:-

 <priority value="${myinfo}" />


可能吗

之所以会出现这些错误,是因为您没有在DOCTYPE元素中包含log4j名称空间。文件的顶部应如下所示:

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

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

...

至于您的第二个问题,我不太确定这是否可行。

看起来您试图混合使用Log4j 1.x和2.x配置

如果要使用log4j2.x,应该在类路径中创建log4j2.xml。 简单的例子是:


警告

.

只是?请给出全名名称空间是什么?抱歉,由于某种原因,它的格式很奇怪,我刚刚编辑了postWhat is this log4j.dtdIt是log4j的文档类型定义文件。DTD定义XML文档()的结构、合法元素和属性。所以我猜这个log4j.dtd来自系统,意思是log4j库。是这样吗?也许,我必须问另一个关于这个物业的问题,或者等待一段时间,看看是否有人能回答这个物业的问题。谢谢你的回答。但我得到了这个错误:-错误状态记录器没有找到Log4j 2配置文件。使用默认配置(仅将错误记录到控制台)或用户以编程方式提供的配置。设置系统属性“log4j2.debug”以显示Log4j 2内部初始化日志。似乎缺少配置文件。但这是maven项目,我将此文件添加到资源文件夹中。为了确保这一点,我制作了一个包并检查了罐子的内容。我可以在罐子里看到log4j。那么我误用了什么呢?正如我所说,log4j2.xml应该在您的类路径中。你可以看到一个简单的例子
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

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