簡體   English   中英

無法使用tomcat服務器中的Log4J和Spring Boot應用程序在單獨的文件中寫入日志

[英]can not write log in separate file using Log4J and spring boot application in tomcat server

我是spring-boot應用程序的新手,並且想要管理日志屬性以將日志寫入單獨的文件。 但是我的日志僅在“ Catalina.out”文件中打印。

這是pom.xml的一部分:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
    .
    .
    .
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    .
    .
    .

這是log4j2-spring.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
    <Property name="log-path">${catalina.base}/logs</Property>
</Properties>
<Appenders>
    <Console name="Console-Appender" target="SYSTEM_OUT">
        <PatternLayout>
            <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
            </pattern>>
        </PatternLayout>
    </Console>
    <File name="App-File-Appender" fileName="${log-path}/app_log.log" >
        <PatternLayout>
            <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
            </pattern>
        </PatternLayout>
    </File>
    <File name="SpringBoot-File-Appender" fileName="${log-path}/springboot_log.log" >
        <PatternLayout>
            <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
            </pattern>
        </PatternLayout>
    </File>
</Appenders>
<Loggers>
    <Logger name="org.springframework.web" level="info" additivity="false">
        <AppenderRef ref="SpringBoot-File-Appender"/>
        <AppenderRef ref="Console-Appender"/>
    </Logger>
    <Logger name="guru.springframework.blog.controllers" level="info" additivity="false">
        <AppenderRef ref="App-File-Appender"/>
        <AppenderRef ref="Console-Appender"/>
     </Logger>
    <Root>
        <AppenderRef ref="Console-Appender"/>
    </Root>
</Loggers>

我的春季靴課:

@SpringBootApplication
 public class MyApplication {

public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);

}

我想知道為什么我的日志文件不創建日志沒有寫在'> $ {catalina.base} / logs / logfile中。

我也測試將這一行放在'application.properties'中:

logging.file=../logs/mylog.log

您應該寫出應用程序根包名稱,即該包在Logger元素name屬性中包含應用程序的所有子包和類-

在下面的行中-

<Logger name="guru.springframework.blog.controllers" level="info" additivity="false">
        <AppenderRef ref="App-File-Appender"/>
        <AppenderRef ref="Console-Appender"/>
     </Logger>

guru.springframework.blog.controllers替換為您的應用程序根軟件包名稱。

或者,您可以在Root Logger添加App-File-Appender

<Root>
    <AppenderRef ref="App-File-Appender"/>
    <AppenderRef ref="Console-Appender"/>
</Root>

但是,使用RootLogger的一般約定是記錄應用程序依賴項的錯誤消息。

暫無
暫無

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

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