كيف يمكنني تعيين conversionpattern log4j في وقت التشغيل
سؤال
ولدي التطبيق بينما جافا بتوزيع المدخلات من البيانات. واضاف لقد القدرة على تشغيل مجرد محلل جزء مستقل من مهمة النمل. ولكن نمط log4j عادي أنا باستخدام يمكن أن تجعل من الناتج الصعب قراءة، كنت ترغب في تحديد نمط بسيط في وقت التشغيل.
وهكذا شيء من هذا القبيل log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
parseDebug = new Boolean(System.getProperty("ptpunit.parseDebug")).booleanValue();
if(parseDebug){
// SET CONVERSION PATTERN HERE
log.setLevel((Level) Level.DEBUG);
}
المحلول
وأعتقد أنك يمكن أن تفعل شيئا من هذا القبيل:
ConsoleAppender a = (ConsoleAppender) Logger.getRootLogger().getAppender("stdout");
a.setLayout(new PatternLayout("%d{HH:mm:ss} %-5.5p %t %m%n"));
وبطبيعة الحال كان لديك لتغيير نوع Appender وفقا لتستخدمه وقد تضطر إلى استبدال "Logger.getRootLogger ()" قبل دعوة لجلب مسجل ويرد appender بك فعلا ل.
لا تنتمي إلى StackOverflow