2017-07-14 10 views
0

log4jバージョン2.xを学習しようとしています。 log4jプロパティはxmlを使用して行われます。以下のコードは、Eclipse STSのmavenプロジェクトにあります。コンソールやファイルにログメッセージを出力しません。Log4jがファイルまたはコンソールにログインしていません

これをデバッグする方法はわかりません。グーグルは私に日食に対する答えを与えてくれませんでした。どうやって自分でこれをデバッグして修正できるのか教えてください。私のコードの大部分/すべてが間違っていない限り、すぐに完全な回答は必要ありません。

コード:

package com.api.log4j; 

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

public class LoggingExample { 

    static Logger logger = LogManager.getLogger(LoggingExample.class); 

    private void loggerLevel(String message) { 
     if (logger.isDebugEnabled()) { 
      logger.debug("This is set to debug: " + message); 
     } 

     if (logger.isInfoEnabled()) { 
      logger.info("This is set to info: " + message); 
     } 

     logger.warn("This is set to warn: " + message); 
     logger.error("This is set to error: " + message); 
     logger.fatal("This is set to fatal: " + message); 
    } 

    public static void main(String[] args) { 
     System.out.println("Running main..."); 
     LoggingExample loggingExample = new LoggingExample(); 
     loggingExample.loggerLevel("calling the loggerLevel method..."); 
    } 

} 

Log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Appenders> 
     <Console name="Console" target="System.out"> 
      <PatternLayout> 
       [%-5level]<!-- Use 5 chars to show the level text. If level text < 5 
        chars, then append spaces to make it 5 chars. --> 
       %d{yyyy-MM-dd HH:mm:ss.SSS}<!-- The date. --> 
       [%t]<!-- Which thread is running. --> 
       %c{1}<!-- Class being logged. --> 
       - %msg%n 
      </PatternLayout> 
     </Console> 
     <File name="File" filename="/src/main/resources/log4j-file.txt"> 
      <PatternLayout> 
       [%-5level]<!-- Use 5 chars to show the level text. If level text < 5 
        chars, then append spaces to make it 5 chars. --> 
       %d{yyyy-MM-dd HH:mm:ss.SSS}<!-- The date. --> 
       [%t]<!-- Which thread is running. --> 
       %c{1}<!-- Class being logged. --> 
       - %msg%n 
      </PatternLayout> 
     </File> 
    </Appenders> 

    <Loggers> 
     <Root> 
      <AppenderRef ref="Console" /> <!-- Appends only to console appender --> 
     </Root> 
     <Logger name="com.api.log4j.LoggingExample" level="debug" 
      additivity="false"> 
      <AppenderRef ref="File" /> <!-- Appends only to file appender --> 
     </Logger> 
    </Loggers> 
</Configuration> 
+0

xmlファイルがどこにあるかのようにプロジェクト構造を共有できますか? – user1211

答えて

0

あなたはMavenのビルドツールを使用している1.If必ずあるlog4j.jarをあなたのlibフォルダに追加されます。 2. log4j.propertiesファイルに設定パラメータを書き込んでください。ログが有効になります!!

# Root logger option 
    log4j.rootLogger=DEBUG,stdout, file 
    # Redirect log messages to console 
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
    log4j.appender.stdout.Target=System.out 
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p 
    %c{1}:%L - %m%n 

    # Redirect log messages to a log file 
    log4j.appender.file=org.apache.log4j.RollingFileAppender 
    log4j.appender.file.File=your File path 
    log4j.appender.file.MaxFileSize=5MB 
    log4j.appender.file.MaxBackupIndex=10 
    log4j.appender.file.layout=org.apache.log4j.PatternLayout 
+0

今はxmlファイルを使いたいです。また、コマンドラインからmavenビルドツールを使用していません。 – CourseHero

関連する問題