2017-03-01 3 views
2

Gibt es eine Möglichkeit, Spring Boot Logging auf mehrere Dateien/Konsole basierend auf der Konfiguration zu konfigurieren? d. h. einige der Protokollanweisungen sollten in eine Prüfdatei schreiben und normale Protokollanweisungen sollten in die Konsolen-/normale Protokolldatei gehen.Spring Boot Logging in mehrere Dateien

Unten ist der Code, den ich bei Spring Boot Beispielanwendung versucht habe.

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> 

Im Folgenden finden Sie die application.properties Einträge

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

Unterhalb des Hello

@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!"; 
    } 

} 

Kann jemand bitte helfen? Hatte jemand eine ähnliche Situation?

Vielen Dank

Antwort

1

Standard-logback Beispiel 2-Dateien mit verschiedenen Paketen auf verschiedene Dateien gehen:

<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> 
0

Just another Logger und appender in der Konfigurationsdatei hinzufügen und Logger-Objekt mit dem Namen erstellen Logger in der Konfiguration definiert. Für weitere Erklärungen überprüfen Sie Spring boot multiple log files