は思ったより道に簡単だったが判明したので、私はちょうど同じ問題を抱えているかもしれない人のために、ここで答えを残しています。
私はそう何、この機能はありませんが、ログに各エントリにパターンを与え、私が指定したファイルにログを向けることである関数にinitializeLogging()
private static void initializeLogging()
{
//Getting the current timestamp to use in log file naming
Calendar calendar = Calendar.getInstance();
java.text.DateFormat df = new java.text.SimpleDateFormat("yyMMddHHmmss");
String timestamp = df.format(calendar.getTime());
ConfigurationBuilder< BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
builder.setStatusLevel(Level.ALL);
builder.setConfigurationName("RollingBuilder");
// create a console appender
AppenderComponentBuilder appenderBuilder = builder.newAppender("Stdout", "CONSOLE").addAttribute("target",
ConsoleAppender.Target.SYSTEM_OUT);
appenderBuilder.add(builder.newLayout("PatternLayout")
.addAttribute("pattern", "<%d{yyyy/MM/dd HH:mm:ss}> %p (%t). %m%n"));
builder.add(appenderBuilder);
// create a rolling file appender
LayoutComponentBuilder layoutBuilder = builder.newLayout("PatternLayout")
.addAttribute("pattern", "<%d{yyyy/MM/dd HH:mm:ss}> %p (%t). %m%n");
ComponentBuilder triggeringPolicy = builder.newComponent("Policies")
.addComponent(builder.newComponent("SizeBasedTriggeringPolicy").addAttribute("size", "100M"));
//specifying log file name as well ss log file name if the first exceeds maximum size => 100M
appenderBuilder = builder.newAppender("rolling", "RollingFile")
.addAttribute("fileName", "logs/myLogging" + "_" + timestamp + ".log")
.addAttribute("FilePattern","logs/myLogging"+"_"+ timestamp + "%d{yyyyMMddHHmmss}" + ".log")
.add(layoutBuilder)
.addComponent(triggeringPolicy);
builder.add(appenderBuilder);
// create the new logger
builder.add(builder.newLogger("myLogger", Level.ALL)
.add(builder.newAppenderRef("rolling"))
.addAttribute("additivity", false));
builder.add(builder.newRootLogger(Level.ALL)
.add(builder.newAppenderRef("rolling")));
LoggerContext ctx = Configurator.initialize(builder.build());
}
を作りました。私が何かを記録したいときはいつでも、私はちょうど呼び出す必要がありますLogger logger = LogManager.getLogger('myLogger)
それでは、簡単にプログラムでlog4jを初期化するだけです。
[CATALINA_HOME]私はwebappプロジェクト内にconfディレクトリを持たないtomcatディレクトリを取得します。それは作業ディレクトリしか持っていません。私はlogging.propertiesファイルを探してみましたが見つかりませんでした。また、これはlog4jでログに記録されません。プログラムでこれを行うことは可能ですか? – catchiecop