Переопределить конфигурацию logback.xml через программу - PullRequest
0 голосов
/ 20 сентября 2019

Я настроил logback.xml для своего весеннего проекта, и мне нужно переопределить свойства файла через программу, прочитав другой файл json.

Ниже приведен мой файл logback.xml

->
<appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${AUDIT_LOG_DIR}/${log_name}.log</file>

    <!-- Rolling based on time and size %d refers date RollingPolicy and maxFileSize define each file size -->
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${AUDIT_LOG_DIR}/${log_name}%d{MM-dd-yy-HH-mm}.%i.log</fileNamePattern>   

        <maxFileSize>1KB</maxFileSize>

        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>    

    <!-- pattern define the message format %d - to display date of logging, %p - logging priority(INFO,ERROR,WARN), %c  - to print class name, %t - thread,%m - message to be printed -->
    <encoder>
        <pattern>%d %p %c{1.} [%t] %m %n</pattern>
    </encoder>
</appender>

<logger name="auditlog" level="TRACE" additivity="false">
    <appender-ref ref="FILE-ROLLING"/>
</logger>

<root level="OFF">

В моем Java-коде у меня есть основной метод, как показано ниже, для чтения json и получения значений

   ObjectMapper mapper = new ObjectMapper();

    mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

    //JSON file to Java object
    loggingjson = mapper.readValue(new File("resources\\logging.json"),LoggingBaseImpl.class);


    String log_file_name = loggingjson.getLogging().getFiles().getAuditLog().getLogname();

    System.setProperty("log_name",log_file_name);

    Logger  logger  = LoggerFactory.getLogger( "auditlog" );


    for(int i = 0; i < 2000; i++) {
        logger.info("This is the " + i + " time I say 'Hello World'.");
        Thread.sleep(10);
    }

}

В моем файле json будут значения для fileNamePattern, maxFileSize, pattern и всей информации.и они должны переопределять свойства, упомянутые в logback.xml

...