この例の前に理解する必要がある他のすべてのことを省略しても、ログ構成を変更するだけで、ログ メッセージを出力するときにクラスと行が出力されます。
陳腐だからとは言いたくないのですが、ここでは RTFM が最良のアプローチです。このページでは、開始するために必要なほとんどすべてを説明します。
http://logging.apache.org/log4j/1.2/manual.html
必要なのは、ロガーの特定の ConversionPattern 構成オプションだけで、メッセージをログに記録するたびにクラス名と行情報もログに記録します。そのページの例を次に示します。
// Import log4j classes.
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
// log4j.appender.console.layout.ConversionPattern=%d{yyyyMMdd HH.mm.ss} %-5p %C.%M(%L): %m%n
class Simple
{
static Logger logger = Logger.getLogger(Simple.class);
protected static void doIt()
{
logger.info("oh yea, we're doing it!");
logger.error(" f-you! joe Boy, you are done!");
logger.fatal("and the world went to bed");
}
public static void main(String[] args)
{
// BasicConfigurator replaced with PropertyConfigurator.
PropertyConfigurator.configure(args[0]);
logger.info("Entering application.");
doIt();
logger.info("Exiting application.");
}
}
ビルドして実行すると、次のようになります。
14:39:56:--> java -classpath log4j-1.2.15.jar:. Simple log4j.properties
20120623 14.41.17 INFO Simple.main(17): Entering application.
20120623 14.41.17 INFO Simple.doIt(24): oh yea, we're doing it!
20120623 14.41.17 ERROR Simple.doIt(25): f-you! joe Boy, you are done!
20120623 14.41.17 FATAL Simple.doIt(26): and the world went to bed
20120623 14.41.17 INFO Simple.main(19): Exiting application.
次のような変換パターンを使用する場合: %d{yyyyMMdd HH.mm.ss} %-5p %C.%M(%L): %m%n
いくつかの詳細を次に示します。
1. get a copy of log4j jar and put it in directory
2. create Simple.java in directory
3. create a file log4j.properties in same directory, put this in file:
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyyMMdd HH.mm.ss} %-5p %C.%M(%L): %m%n
4. compile Simple.java with: javac -classpath log4j-1.2.15.jar:. Simple.java
5. run it with this: java -classpath log4j-1.2.15.jar:. Simple log4j.properties