如何在远程服务器上部署时将消息记录到文件中

时间:2016-10-25 14:16:32

标签: java spring logging spring-boot logback

在我的spring boot项目中,我在本地运行项目时使用了logback.xml,它将消息记录到指定文件中,但是当我部署在远程服务器上时,它仍然写入tomcat中的catalina.out文件。 这是我的代码。 logback.xml

<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- Log message format -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- Setting the root level of logging to INFO -->
  <root level="info">
    <appender-ref ref="FILE" />
  </root>
</configuration>

我在pom.xml文件中指定了这些依赖项。

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>   
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
             <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency> 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

在application.properties文件中,我指定了日志文件属性。

logging.file=var/log/sampleproject_logging.log

在application-dev.properties文件中,我为远程服务器指定了日志文件。

spring.profiles.active = dev

#logging info
#logging.file=var/log/sampleproject/sampleproject_logging.log

当我在本地运行时,它在项目结构和记录的消息下创建了文件夹。当部署在远程服务器上时,它仍然登录到catalina.out文件。如何写入远程服务器上的指定日志文件?我试过logback-spring.xml和logging.config属性对我没用。

1 个答案:

答案 0 :(得分:0)

你错过了#34; FILE&#34; logback.xml中的Appender定义

添加类似这样的内容

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>yourlogName.log</file>
    <encoder>
        <pattern>%d{yyyy-MM-dd  HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>