6

私はログバックが初めてです。ファイルにログインしようとしています。私logback.xmlは:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} %-5level %logger{36} - %msg%n
            </Pattern>
        </encoder>
    </appender>

    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>d:/walknshine.log</File>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
                %msg%n
            </Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <FileNamePattern>d:/walknshine.%i.log.zip
            </FileNamePattern>
            <MinIndex>1</MinIndex>
            <MaxIndex>10</MaxIndex>
        </rollingPolicy>

        <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>1MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

コンソールでログが記録されていますが、指定されたパスにファイルが生成されていません。私のMavenの依存関係は

  <!-- LOGGING DEPENDENCIES - LOG4J -->
    <dependency>
        <groupId>logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.6</version>
    </dependency>
    <dependency>
        <groupId>logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.0.6</version>
    </dependency>
    <dependency>
        <groupId>logback</groupId>
        <artifactId>sl4j</artifactId>
        <version>1.6.0</version>
    </dependency>

私はロガーを次のように使用しています:

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

logger.info("Logged Message");

ここで私を助けてください...私が見逃しているものは何ですか?

4

1 に答える 1

15

logback.xmlファイルが正しい場所にあり、検出されていることを確認しますか?意図的に設定ファイルにエラーを入れて、コンソールにメッセージが表示されるかどうかを確認してください(ログバックはこれを自動的に行います)。さらに、Logbackに内部ステータス情報を印刷するように依頼できます。

public static void main(String[] args) {
    // assume SLF4J is bound to logback in the current environment
    LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
    // print logback's internal status
    StatusPrinter.print(lc);
    ...
}
于 2012-07-17T04:47:50.623 に答える