Sobes.tech
Middle
224

Какви са начините за конфигуриране на log4j?

Отговор от AI

sobes.tech AI

log4j може да бъде конфигуриран по един от следните начини:

  1. Програмен начин: Конфигурацията се задава директно в Java кода.

    // Пример за програма за конфигуриране
    org.apache.log4j.BasicConfigurator.configure();
    org.apache.log4j.Logger rootLogger = org.apache.log4j.Logger.getRootLogger();
    rootLogger.setLevel(org.apache.log4j.Level.DEBUG);
    org.apache.log4j.ConsoleAppender consoleAppender = new org.apache.log4j.ConsoleAppender(
            new org.apache.log4j.PatternLayout("%d [%t] %-5p %c - %m%n")
    );
    rootLogger.addAppender(consoleAppender);
    
    org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(MyClass.class);
    logger.debug("Debug съобщение");
    
  2. Чрез properties файл: Конфигурацията се задава в .properties файл. Log4j автоматично търси файл с име log4j.properties в classpath.

    # Пример за log4j.properties файл
    log4j.rootLogger=DEBUG, console, file
    
    # Конфигурация на конзолния апендер
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
    
    # Конфигурация на файловия апендер
    log4j.appender.file=org.apache.log4j.FileAppender
    log4j.appender.file.File=application.log
    log4j.appender.file.Append=true
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
    
  3. Чрез XML файл: Конфигурацията се задава в .xml файл. Log4j може автоматично да намери файла log4j.xml в classpath.

    <!-- Пример за log4j.xml файл -->
    <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
    <log4j:configuration 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 [%t] %-5p %c - %m%n"/>
            </layout>
        </appender>
    
        <appender name="file" class="org.apache.log4j.FileAppender">
            <param name="File" value="application.log"/>
            <param name="Append" value="true"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
            </layout>
        </appender>
    
        <root>
            <level value="DEBUG"/>
            <appender-ref ref="console"/>
            <appender-ref ref="file"/>
        </root>
    
    </log4j:configuration>
    

Редът на зареждане на конфигурацията (по подразбиране):

Log4j търси конфигурационните файлове в следния ред:

  1. Системно свойство log4j.configuration (посочва път към конфигурационния файл).
  2. Файл log4j.xml в classpath.
  3. Файл log4j.properties в classpath.
  4. Ако не бъде намерен нито един файл, се използва базовата конфигурация (ConsoleAppender с ниво ERROR).

Приоритет на конфигурацията:

  • Програмираната конфигурация има най-висок приоритет.
  • Следва конфигурацията, зададена чрез системното свойство.
  • XML файлът има приоритет пред файла с свойства, ако и двата са налични и не е зададено системно свойство.