8

私はSpringでSlf4jとlog4jを学んでいます.1つの行を使用している場所を見てきました

private final Logger logger = LoggerFactory.getLogger(name.class);

これがデフォルトでルートロガーを取得していることを確認しました。

  1. これはどのようにルートロガーを取得していますか?私は間違っていますか?

  2. log4j.xml ファイルで定義されている他のロガーを取得するにはどうすればよいですか?

これは私の構成です:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
  "-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
    debug="false">

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
        </layout>
    </appender>

    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </appender>

    <appender name="FILE" class="org.apache.log4j.RollingFileAppender">

        <param name="File" value="C:/log/spring-hib.log" />
        <param name="MaxBackupIndex" value="100" />

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
        </layout>


    </appender>

  <logger name="com.example.foo">
  <level value="DEBUG"/>
  <appender-ref ref="FooLogFile"/>
 </logger>



    <category name="org.hibernate">
        <priority value="DEBUG" />
    </category>

    <category name="java.sql">
        <priority value="debug" />
    </category>

    <root>
        <priority value="INFO" />
        <appender-ref ref="ASYNC" />
    </root>

</log4j:configuration>
4

2 に答える 2

1

1.これがルートロガーを取得する方法

次の表からわかるように、ロガーは階層を構築します: http://logging.apache.org/log4j/2.x/manual/architecture.html

2.log4j.xml ファイルで定義されている他のロガーを取得するにはどうすればよいですか?

そこで定義されているものを厳密に知りたい場合は、その構成ファイルを解析して読み取る必要があります。実行時にすべてのアクティブなロガーとその構成が必要な場合は、そのための API があります。たとえば、それを行う方法の記事: http://nelz.net/2008/04/08/log4j-runtime-configuration/

また、slf4J に関する適切なチュートリアルは見つかりませんでした。適切なリンクがあれば

slf4j にはかなりの数のドキュメントがあります: http://www.slf4j.org/docs.htmlしかし、これは単なるラッパーであるため、log4j が「作業」を行うため、これに関する本があります: http://www.qos.ch/ショップ/製品/log4jManual

于 2013-09-01T19:29:11.263 に答える