Конфигурация XML для log4j, чтобы показать номер строки в HTMLLayout
У меня есть вопрос о конфигурации XML log4j. Я хочу иметь HTMLLayout. Но в сгенерированном HTML-файле нет категории строки. Но я хочу это увидеть. Я искал, и кажется, что установить LocationInfo, чтобы быть правдой. Но я не знаю, как изменить мой XML.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="log" class="org.apache.log4j.FileAppender">
<param name="File" value= "log4j.html"/>
<param name="Append" value= "false" />
<layout class="org.apache.log4j.HTMLLayout"/>
</appender>
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%06r] [%F:%L] %-10c %x %m%n" />
</layout>
</appender>
<root>
<priority value="debug"/>
<appender-ref ref="log"/>
<!--appender-ref ref="stdout"/-->
</root>
</log4j:configuration>
1 ответ
Решение
В Javadoc1 из org.apache.log4j.HTMLLayout
состояния:
Опция LocationInfo принимает логическое значение. По умолчанию установлено значение false, что означает, что эта компоновка не будет выводить информацию о местоположении. Если для параметра задано значение true, то будут выведены имя файла и номер строки оператора в источнике оператора журнала.
Итак, вам просто нужно установить его true
, Поэтому конфигурация вашего appender
может быть похож на:
<appender name="log" class="org.apache.log4j.FileAppender">
<param name="file" value="log4j.html"/>
<param name="threshold" value="debug"/>
<param name="immediateFlush" value="true"/>
<param name="append" value="false"/>
<layout class="org.apache.log4j.HTMLLayout">
<param name="Title" value="false"/>
<param name="LocationInfo" value="true"/>
</layout>
</appender>
Заметки