必要なもの
例私はあなたの最善のアプローチは、マーカーのいくつかの種類に基づいてログメッセージをフィルタリングするためにStringMatchFilterを使用することであることを示唆しています。ここで
import org.apache.log4j.Logger;
public class Example1 {
private static final Logger logger = Logger.getLogger(Example1.class);
// This should probably go into a general purpose constants class of some kind
// but for simplicity of this example it's in here.
private static final String SPECIAL_MARKER = "SPECIAL";
public static void main(String[] args){
logger.debug("debug from my.Example1");
logger.info("info from my.Example1");
logger.warn("warning from my.Example1");
logger.error("error from my.Example1");
logger.fatal("fatal from my.Example1");
logger.info(SPECIAL_MARKER+" This goes in a special file");
}
}
のlog4jプロパティされています:ここではいくつかのサンプルコードはある
log4j.rootLogger=INFO, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=logs/special.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.R.filter.1=org.apache.log4j.varia.StringMatchFilter
log4j.appender.R.filter.1.StringToMatch=SPECIAL
log4j.appender.R.filter.1.AcceptOnMatch=true
log4j.appender.R.filter.2=org.apache.log4j.varia.DenyAllFilter
代替がアペンダを参照ロガーの設定を追加して、あなたのロガーを作成するために、そのロガー名を使用することです。 2番目のロガーを宣言する必要があるので、これはあまり優雅ではありません。
例Javaコード:
import org.apache.log4j.Logger;
public class Example1 {
private static final Logger logger = Logger.getLogger(Example1.class);
private static final Logger specialLog = Logger.getLogger("special");
public static void main(String[] args){
logger.debug("debug from my.Example1");
logger.info("info from my.Example1");
logger.warn("warning from my.Example1");
logger.error("error from my.Example1");
logger.fatal("fatal from my.Example1");
specialLog.info("This goes in a special file");
}
}
log4j.properties: "特別な" ロガー上記の例では
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=logs/special.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.special=INFO, R, stdout
log4j.additivity.special=false
は特別なログへの出力を生成するために使用されます。