如何设置Spring应用程序的日志文件名并登录到tomcat / logs文件夹?

时间:2017-01-04 12:21:18

标签: java spring tomcat spring-boot

如何设置相对于tomcat dir /logs/mylog.log的日志记录路径?

我尝试了什么:更改logging.file

中的application.properties属性

保留文件名:#logging.file= - >所有内容都记录到控制台,因此写入tomcat/logs/localhost.yyyy-mm-dd.log

logging.file=mylog.log - >写入控制台,与#logging.file

相同

logging.file=d:/mylog.log - >写到位置d:/mylog.log

logging.file=../logs/mylog.log - >写入控制台,因此仍然写入localhost * .log

没有成功。 我对配置外部化不感兴趣,例如提供系统或环境变量。

3 个答案:

答案 0 :(得分:4)

我刚刚从spring starter build创建了一个简单的Spring-boot应用程序作为war文件。我在@SpringBootApplication类:

中进行了此修改
@SpringBootApplication
public class LogApplication {

   private static final Logger logger = Logger.getLogger(LogApplication.class);

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

    @Controller
    @ResponseBody
    public static class IndexController{

        @RequestMapping("/")
        public String getindex(){
            logger.error("Error Logging");
            return "Hello";
        }
    }
}

application.properties中的此属性:

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

使用maven mvn clean install构建应用程序,并将war文件放在webapps的{​​{1}}文件夹中。使用tomcat启动tomcat并成功点击端点startup.bat

日志写在http://localhost:8080/demo-0.0.1-SNAPSHOT

enter image description here

logs/mylog.log

答案 1 :(得分:3)

您可以使用环境变量来配置日志路径。

Tomcat设置 catalina.home 系统属性,您可以使用

log4j.rootCategory = DEBUG,错误文件

log4j.appender.errorfile.File = <强> $ {的catalina.home} /logs/LogFilename.log

注意: -

这可能不起作用在Debian(包括Ubuntu)上,$ {catalina.home}将无效,因为它指向/ usr / share / tomcat6,它没有链接到/ var / log / tomcat6。这里只需使用$ {catalina.base}。 Check this link

答案 2 :(得分:1)

我要回答Tomz的回复并指出docs,因为它们会向您展示如何从logback切换到log4j,这对您来说可能更容易。

我强烈建议不要在war文件中部署Spring Boot,而是作为可执行的胖罐。只需输入以测试配置并进行部署,它就会使事情变得更加容易:

java -jar my-service.jar /opt/my-service/conf/application.yml