サーチ…


設定ファイル

構成

Log4j構成ファイルは、次のいずれかの形式にすることができます。

  • JSON
  • YAML
  • プロパティ(テキストファイル)
  • XML

構成の検出

  1. Log4jはlog4j.configurationFileシステム・プロパティーを検査し、設定されている場合は構成のロードを試みます。
  2. システムプロパティが設定されていない場合、log4jはクラスパスにlog4j2-test.propertiesを探します。
  3. そのようなファイルが見つからない場合、log4jはクラスパスにlog4j2-test.yamlまたはlog4j2-test.ymlます。
  4. そのようなファイルが見つからない場合、log4jはクラスパスにlog4j2-test.jsonまたはlog4j2-test.jsnます。
  5. そのようなファイルが見つからない場合、logj4はクラスパス内のlog4j2-test.xmlを探します。
  6. テストファイルが見つからない場合、log4jはクラスパス上のlog4j2.propertiesを探します。
  7. プロパティファイルが見つからない場合、log4jはクラスパス上のlog4j2.yamlまたはlog4j2.ymlを探します。
  8. YAMLファイルが見つからない場合、log4jはクラスパス上でlog4j2.jsonまたはlog4j2.jsnを探します。
  9. JSONファイルを見つけることができない場合、log4jはクラスパス上にlog4j2.xmlを配置しようとします。
  10. 設定ファイルが見つからない場合、DefaultConfigurationが使用されます。これによりログ出力がコンソールに出力されます。

XML設定

XMLの例

以下の設定では、2つのアペンダー(ログ出力)を構成しています。最初のログは標準システム出力(コンソール)にログされ、他のログはファイルに記録されます。この例では、ファイルの場所を構成( <Property name="APPENDER"> file )で静的に設定することも、mavenフィルター機能( <Property name="APPENDER"> )を介して動的に設定することもできます。ファイルのログは1日ごとにパックされます。ログライン形式のConversion Patternは変数として設定されます。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 'status' sets log level for parsing configuration file itself -->
<Configuration status="INFO">
<Properties>
    <!-- Sets variable PID, if it's not present in log4j context will take value as below: -->
    <Property name="PID">????</Property>
    <!-- Sets variable 'LOG_PATTERN', defining how log line will look like -->
    <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{%X{usr}}{green} %clr{---}{faint}%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}:%l}{cyan} %clr{:}{faint} %m%n%wEx</Property>
    <!-- LOG_DIR may be set by maven filtering feature: -->
    <Property name="LOG_DIR">@logging.path@</Property>
    <!-- APPENDER may be set by maven filtering feature, to set 'console' or 'file' appender: -->
    <Property name="APPENDER">@logging.default.appender@</Property>
</Properties>
<Appenders>
    <!-- Sets console output: -->
    <Console name="console" target="SYSTEM_OUT">
        <PatternLayout pattern="${LOG_PATTERN}"/>
    </Console>
    <!-- Sets output to file, and names it 'file' -->
    <RollingRandomAccessFile append="true" fileName="${LOG_DIR}/log4j2.log"
        filePattern = "${LOG_DIR}/log4j2.%d{yyyy-MM-dd}.nr%i.log.gz" name="file">
        <PatternLayout>
            <Pattern>${LOG_PATTERN}</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy />
        </Policies>
    </RollingRandomAccessFile>
</Appenders>
<Loggers>
    <!-- Sets debug for Class 'com.example.package.Clazz', and attaches to file 'file' -->
    <Logger name="com.example.package.Clazz" level="debug">
        <AppenderRef ref="file"/>
    </Logger>
    <!-- Sets 'info' for package 'org.springframework' -->
    <Logger name="org.springframework" level="info" />
    <Root level="WARN">
        <AppenderRef ref="${APPENDER}"/>
    </Root>
</Loggers>
</Configuration>


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow