簡體   English   中英

配置log4j2以從applet使用

[英]Configure log4j2 for use from applet

在applet中應放置log4j2.xml的位置? 它可以同時登錄到Java Console和用戶計算機上的文件嗎?

我將其放在applet資源conf / log4j2.xml中,並從applet中讀取了它。 Applet錯誤地加載了它,因此我修復了applet代碼中的字段:

public static Logger getLogger(Class className) {

    //get logger configuration
    LoggerContext loggerContext = Configurator.initialize("client", className.getClassLoader(), className.getClassLoader().getResource("conf/log4j2.xml").getFile());
    Configuration configuration = loggerContext.getConfiguration();

    //set root logger to desired level
    LoggerConfig loggerConfig = configuration.getLoggerConfig("");
    loggerConfig.setLevel(Level.INFO);

    //obtain appender
    Appender appender = obtainAppender(configuration);

    //get logger for required class
    org.apache.logging.log4j.core.Logger loggerForClass = loggerContext.getLogger(className.getName());

    //associate logger for required class with just created appender
    configuration.addLoggerAppender(loggerForClass, appender);

    return loggerForClass;
}

private static Appender obtainAppender(Configuration configuration) {

    //create appender
    TriggeringPolicy[] triggeringPolicies = {OnStartupTriggeringPolicy.createPolicy(), TimeBasedTriggeringPolicy.createPolicy("5", "true"), SizeBasedTriggeringPolicy.createPolicy("5 MB")};
    TriggeringPolicy triggeringPolicy = CompositeTriggeringPolicy.createPolicy(triggeringPolicies);
    return RollingFileAppender.createAppender(CLIENT_LOG_PATH + FileUtils.FILE_SEPARATOR + "my_client.log",
            CLIENT_LOG_PATH + FileUtils.FILE_SEPARATOR + "/$${date:yyyy-MM}/my_client-%d{MM-dd-yyyy-HH-mm}-%i.log",
            "", APPLET_APPENDER,
            "true", "true",
            triggeringPolicy, null,
            PatternLayout.createLayout("%d{dd/MM/yyyy HH:mm:ss} %-5p [%t] [%c{1}] %m%n", configuration, null, "UTF-8"),
            null, "true", configuration);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM