这是我在控制台上收到的警告:
log4j:WARN Continuable parsing error 1 and column 168
log4j:WARN Document root element "log4j:configuration", must match DOCTYPE root "null".
log4j:WARN Continuable parsing error 1 and column 168
log4j:WARN Document is invalid: no grammar found.
这是我的log4j.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="false" xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="10" />
<param name="file" value="log.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="async" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="500"/>
<param name="LocationInfo" value="true"/>
<appender-ref ref="console" />
<appender-ref ref="file" />
</appender>
<logger name="logger-1">
<level value="ERROR"/>
</logger>
<logger name="logger-2">
<level value="ERROR"/>
</logger>
<root>
<level value="ERROR" />
<appender-ref ref="async"/>
</root>
</log4j:configuration>
这是我的主要方法:
public static void main(String argv[]) {
int i;
String filepath = " log4j.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
NodeList nodes = doc.getElementsByTagName("level");
for (i = 0; i < nodes.getLength(); i++) {
Node staff = doc.getElementsByTagName("level").item(i);
NamedNodeMap attr = staff.getAttributes();
Node nodeAttr = attr.getNamedItem("value");
nodeAttr.setTextContent("ERROR");
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(filepath));
transformer.transform(source, result);
DOMConfigurator.configure("log4j.xml")
}
我不确定是否正在发生这种情况,因为我在pom.xml文件中使用的是较旧版本的log4j(1.2.17)。我已经多次检查并使用过log4j.xml文件-我不知道发生了什么。我的主要方法有问题吗?