كيف يمكنني تعيين conversionpattern log4j في وقت التشغيل

StackOverflow https://stackoverflow.com/questions/1403797

  •  05-07-2019
  •  | 
  •  

سؤال

ولدي التطبيق بينما جافا بتوزيع المدخلات من البيانات. واضاف لقد القدرة على تشغيل مجرد محلل جزء مستقل من مهمة النمل. ولكن نمط 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 بك فعلا ل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top