2016-05-06 5 views
0

私の最初の質問です、ごめんなさい私の質問を間違えた場合。Log4j 2:私のlog4j.propertiesのクラスからの参照を追加するには

まあこれはlog4j2についての私の疑問です。(私はSpringフレームワークのJavaを使用)

私の目標は、クラス内で生成されたすべてのログはLoggerインスタンスを持つWICHファイルに書き込みます。この目的のために

私は、次のlog4j.propertiesファイルがあります。

name=PropertiesConfig 
property.filename = C:/sts-bundle/Tomcat 7.0/logs 
appenders = console,rolling 

appender.console.type = Console 
appender.console.name = STDOUT 
appender.console.layout.type = PatternLayout 
appender.console.layout.pattern = [%-5level] %d{dd MMM yyyy HH:mm:ss,SSS} [%t] %c{5} - %msg%n 

appender.rolling.type = RollingFile 
appender.rolling.name = RollingFile 
appender.rolling.fileName = ${filename}/fnelLog-${date:dd-MM-yyyy}.log 
appender.rolling.filePattern = ${filename}/fnelLog-%d{dd-MM-yyyy}-%i.log 
appender.rolling.layout.type = PatternLayout 
appender.rolling.layout.pattern = [%-5level] %d{dd MMM yyyy HH:mm:ss,SSS} [%t] %c{5} - %msg%n 
appender.rolling.policies.type = Policies 
#appender.rolling.policies.time.type = TimeBasedTriggeringPolicy 
#appender.rolling.policies.time.interval = 2 
#appender.rolling.policies.time.modulate = true 
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy 
appender.rolling.policies.size.size=50MB 
appender.rolling.strategy.type = DefaultRolloverStrategy 
appender.rolling.strategy.max = 4 

loggers = rolling 

############ HERE IS MY PROBLEM, I Only reference to this class, but I want to add another, 
############ so I can write all logs in a file described in lines before 
logger.rolling.name = fnel.bcp.org.main.TestMain 
logger.rolling.level = debug 
#logger.rolling.additivity = false 
logger.rolling.appenderRefs = rolling 
logger.rolling.appenderRef.rolling.ref = RollingFile 


rootLogger.level = debug 
rootLogger.appenderRefs = stdout 
rootLogger.appenderRef.stdout.ref = STDOUT 

を、今ここで私はロガーインタフェースを使用2 clasesです。

public class FooClass { 

    private static Logger logger = LogManager.getLogger(FooClass.class); 

    public void testLog4j() { 
     // TODO Auto-generated method stub 
     logger.debug("This is a debug message"); 
     logger.info("This is an info message"); 
     logger.warn("This is a warn message"); 
     logger.error("This is an error message"); 
     logger.fatal("This is a fatal message"); 
    } 

} 



public class TestMain { 

    private static Logger logger = LogManager.getLogger(TestMain.class); 

    public static void main(String[] args) { 
    FooClass foo = new FooClass(); 

    //Calling foo method 
    foo.testLog4j(); 

    // TODO Auto-generated method stub 
    logger.debug("This is a debug message"); 
    logger.info("This is an info message"); 
    logger.warn("This is a warn message"); 
    logger.error("This is an error message"); 
    logger.fatal("This is a fatal message"); 
    } 

} 

そして、これらだからコンソール

で出力され、私の質問は、私は私のlog4j.propertiesファイルでFooClassを追加する方法です。私はこの "fnel.bcp.org.main.TestMain、fnel.bcp.org.main.FooClass"のようなTestMainクラスの次に追加したので動作しませんでした。

別のlogger.rolling.nameで区切りましたが、うまくいきませんでした。

+0

Log4jを使用しようとしているときに、参照されているライブラリが含まれていないと正しく理解していますか?私は同じ問題を抱えていました。実際には、参照されたライブラリをコピーして出力ファイルに入れなければなりません。 –

+1

これはLog4j 2の質問です。この質問に既に回答があるという申し立ては間違っています:以前の回答へのリンクはLog4j 1のものです。*はLog4j 2には適用されません。 –

+0

@RemkoPopma:8Kユーザーとして、問題の再開要求タイトル。あなたのオプションは、再投票を行い、そして/またはあなたが再評価することができるかどうかを確認するためにクローズアップ投票者にpingすることです。あなたは、適切なチャットルームに行って、アップ/ダウンボートのために同じことをしていない限り、投票を再開するか(またはクローズド投票者チャットからも同じであるとは限りません)尋ねることができるでしょう。 – halfer

答えて

1

変更

logger.rolling.name = fnel.bcp.org.main 

これにライン

logger.rolling.name = fnel.bcp.org.main.TestMain 

はfnel.bcp.org.mainパッケージ内の任意のクラスがRollingFileアペンダに向けられるようになります。また、ファイル内のすべてを必要とする場合は、ロガー定義を削除し、ルートロガーをSTDOUTの代わりにRollingFileに変更することができます。

+0

+10通常通りの情報。この質問が重複して間違って閉じられたため、投票を再開してください。 –

関連する問題