Пролетно зареждане, влизане в множество файлове

Има ли някакъв начин да конфигурирам регистриране за пролетно зареждане на множество файлове/конзола въз основа на конфигурацията? т.е. някои от операторите на регистрационния файл трябва да записват в одитен файл, а нормалните оператори на журнал трябва да отидат в конзолата/нормалния лог файл.

По-долу е кодът, който изпробвах на примерно приложение за пролетно зареждане.

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="file" level="DEBUG" additivity="false">
        <appender-ref ref="FILE" />
    </logger>
    <logger name="org.hello" level="ERROR" additivity="false">
        <appender-ref ref="CONSOLE" />
    </logger>
</configuration>

По-долу са записите за application.properties

logging.level.org.springframework.web=INFO
logging.file=logs/spring-boot-logging.log

Под HelloController

@RestController
public class HelloController {

Logger logger = LoggerFactory.getLogger(HelloController.class);

    Logger logger1 = LoggerFactory.getLogger("file");

    @RequestMapping("/")
    public String index() {

        logger.info("My Log test");
        logger1.info("My Audit test");


        return "Greetings from Spring Boot!";
    }

}

Може ли някой да помогне? Някой сблъсквал ли се е с подобна ситуация?

Благодаря много


person user2413742    schedule 01.03.2017    source източник


Отговори (3)


Стандартен пример за регистриране, два файла с различни пакети, отиващи към различни файлове:

<configuration>

  <appender name="FILE1" class="ch.qos.logback.core.FileAppender">
    <file>myApp1.log</file>
    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="FILE2" class="ch.qos.logback.core.FileAppender">
    <file>myApp1.log</file>
    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>

  <logger name="com.package1.foo" level="DEBUG">
    <appender-ref ref="FILE1" />
  </logger>

  <logger name="com.package2.bar" level="DEBUG">
    <appender-ref ref="FILE2" />
  </logger>

  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
person Essex Boy    schedule 01.03.2017

Просто добавете друг логер и appender във вашия конфигурационен файл и създайте обект на регистратор, като използвате името на Logger, дефинирано в конфигурацията. За повече обяснения проверете Пролетно зареждане на множество регистрационни файлове

person abhishek ringsia    schedule 17.05.2017

Пролетното стартиране влиза в множество файлове и можем да създадем лог и в избрания клас. Използвах следното logback.xml

<configuration>
<appender name="logOutPut" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${catalina.base}/logs/WebServe-logback.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${catalina.base}/logs/WebServe-log-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <maxFileSize>50MB</maxFileSize>    
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="errorlab" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${catalina.base}/logs/error-logback.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${catalina.base}/logs/error-log-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <maxFileSize>50MB</maxFileSize>    
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="jdbc.sqltiming.appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${catalina.base}/logs/WebServe-sql-timing.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">       
        <fileNamePattern>${catalina.base}/logs/WebServe-sql-timing-log-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <maxFileSize>50MB</maxFileSize>    
        <maxHistory>30</maxHistory>
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<logger name="com.tasks.MailNotificationTask">
   <level value="ALL" />
   <appender-ref ref="errorlab" />
</logger>

<logger name="jdbc.sqltiming">
    <appender-ref ref="jdbc.sqltiming.appender" />
</logger>

<root level="debug">
    <appender-ref ref="logOutPut" />
</root>

Dependency :

     <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
person Bheem Singh    schedule 24.09.2019