私は、ウェブアプリケーションでlog4j2を使用してユーザーの操作を記録しています。私は、Web用にlog4j-ウェブ-2.7.jarが含まれているherelog4j2がウェブアプリケーションで間違って開始される
String dir = System.getProperty("catalina.base");
ConfigurationBuilder< BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
builder.setStatusLevel(Level.INFO);
builder.setConfigurationName("RollingBuilder"); // create a rolling file appender
LayoutComponentBuilder layoutBuilder = builder.newLayout("PatternLayout")
.addAttribute("pattern", "%d %-5level: %msg%n");
ComponentBuilder triggeringPolicy = builder.newComponent("Policies")
.addComponent(builder.newComponent("SizeBasedTriggeringPolicy").addAttribute("size",
"250K"));
ComponentBuilder defaultStrat = builder.newComponent("DefaultRolloverStrategy")
.addAttribute("min", 2)
.addAttribute("max", 5);
AppenderComponentBuilder appenderBuilder = builder.newAppender("rolling", "RollingFile")
.addAttribute("fileName", dir + "/logs/admin.log")
.addAttribute("filePattern", dir + "/logs/admin-%d{MM-dd-yy}_%i.log")
.add(layoutBuilder)
.addComponent(triggeringPolicy)
.addComponent(defaultStrat);
builder.add(appenderBuilder);
// create the new logger
builder.add(builder.newLogger("AdminLogger", Level.INFO)
.add(builder.newAppenderRef("rolling"))
.addAttribute("additivity", false));
builder.add(builder.newRootLogger(Level.DEBUG)
.add(builder.newAppenderRef("rolling")));
LoggerContext ctx = Configurator.initialize(builder.build());
LOGGER = LogManager.getLogger(UserLog.class.getName());
この
は私がprogrammaticaly命令を使用して設定を設定しています7.0.42Tomcat上で動作するWeb 3.0アプリですアプリ。
私は自動初期化したくないので、を、私は真の<context-param> <description>Turn off auto initialization for log4j2</description> <param-name>IS_LOG4J_AUTO_INITIALIZATION_DISABLED</param-name> <param-value>true</param-value> </context-param>
にコンテキストのparam IS_LOG4J_AUTO_INITIALIZATION_DISABLEDを設定しているが、私はアプリを展開するとき、私はカタリナログファイルに次の警告を得る
INFO | jvm 1 | 2016/11/25 20:48:55 |エラーStatusLogger log4j2構成ファイルが見つかりませんでした。デフォルト設定を使用する:エラーのみをコンソールに記録する。
すべてのロギングは、イニシャライザで設定したログファイルではなくコンソールに送られます。
log4j-web-2.7.jarを削除した場合log4jはデプロイ時に初期化されず、ロガーは正常に動作します。警告とローリングログファイルは作成されず正しく動作します。
自動初期化をオフにするためにコンテキストパラメータに何か問題がありますか? \
安全にlog4j-web-2.7.jarを含めることはできますか?また、アプリがデプロイされ、デプロイされていないときに何かする必要がありますか?
おかげスコット