Реализация apache log4j через log4j.xml, log4j.dtd - PullRequest
0 голосов
/ 10 июля 2010

Я реализовал log4j через log4j.properties, но я прочитал, что есть некоторое преимущество использования xml из log4j, так что теперь я пытаюсь, но не получаю его ...

1 Ответ

0 голосов
/ 22 июля 2010

Я всегда использую XML. Мне легче читать и работать, а также есть несколько функций log4j, которые могут быть реализованы только с XML. Как сказал JoseK, если у вас есть более конкретные вопросы о том, что вы пробовали, сообщите нам.

Для некоторых основ файл свойств будет прочитан автоматически, если он находится в файле с именем log4j.xml, расположенном в любом месте пути к классам. Самый простой способ сделать это - поместить в корневой каталог src. В нашем проекте я создаю папку logging в каталоге resources и добавляю ее в classpath, что позволяет мне также поместить туда файл commons-logging.properties.


В Интернете нет недостатка в описании структуры XML-файлов log4j. Один случайный пример Google здесь . Вы можете найти гораздо больше в Интернете.

Надеюсь, чтобы помочь вам больше, я предоставлю свой точный файл регистрации из активного проекта. А также сопровождающий commons-logging.properties файл:

    <!--  ================ APPENDERS ================ -->
    <appender name="ProjectAppender" class="org.apache.log4j.FileAppender">
            <param name="File" value="/blazeds/tomcat/logs/all.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%m%n" />
            </layout>
    </appender>

    <appender name="AspectAppender" class="org.apache.log4j.FileAppender">
            <param name="File" value="/blazeds/tomcat/logs/aspects.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%d{ABSOLUTE}]\t\t%m%n" />
            </layout>
    </appender>

    <appender name="DebugFileAppender" class="org.apache.log4j.FileAppender">
            <param name="File" value="/blazeds/tomcat/logs/debug.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%d{ABSOLUTE}] %-5p\t%m%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                    <param name="LevelMin" value="DEBUG" />
                    <param name="LevelMax" value="DEBUG" />
                    <param name="AcceptOnMatch" value="true" />
            </filter>
            <filter class="org.apache.log4j.varia.DenyAllFilter" />
    </appender>

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

    <appender name="ErrorConsoleAppender" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%d{ABSOLUTE}] %-5p > %m%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                    <param name="LevelMin" value="ERROR" />
                    <param name="LevelMax" value="ERROR" />
                    <param name="AcceptOnMatch" value="true" />
            </filter>
            <filter class="org.apache.log4j.varia.DenyAllFilter" />
    </appender>


    <!--  ========= LOGGERS - additive  ==== -->

    <logger name="com.companyname.projectname" additivity="true">
            <level value="ALL" />
            <appender-ref ref="ProjectAppender" />
            <appender-ref ref="DebugFileAppender" />
    </logger>


    <logger name="com.companyname.projectname.aspects" additivity="true">
            <level value="ALL" />
            <appender-ref ref="AspectAppender" />
    </logger>

    <root>
            <priority value="ALL" />
            <appender-ref ref="ErrorConsoleAppender" />
    </root>

Мы не ведем здесь интенсивную регистрацию, поэтому это достаточно простой пример, чтобы дать вам идею. Одна интересная особенность этой настройки ведения журналов - любой вызов log.error(string), который автоматически всплывает до консоли.

Поместите эти два файла в директорию src, измените пути к выходным файлам, и вы должны увидеть отображение журналов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...