春季启动日志记录

nmp*_*mpg 2 java service logging spring spring-boot

我正在使用 Spring Boot 构建一个简单的 REST 服务,我想知道处理日志记录的最合适的方法。

在我的application.properties文件中,我有以下内容:

logging.level.org.springframework.web: DEBUG
Run Code Online (Sandbox Code Playgroud)

在开发应用程序时,我只是这样运行它:

java -jar myapp.war
Run Code Online (Sandbox Code Playgroud)

因此,我在标准输出中获得了所有不错的日志消息。但是,我打算部署它,我想知道部署应用程序并仍然保留日志的最合适方法是什么。

当然,可以简单地重定向输出

java -jar myapp.war >> somefile
Run Code Online (Sandbox Code Playgroud)

但这不是很优雅,我想部署我的应用程序,以便它可以轻松地用作服务:

ln -s /my/app/xyz.war /etc/init.d/xyz
Run Code Online (Sandbox Code Playgroud)

然后,做

service xyz start|stop|restrart
Run Code Online (Sandbox Code Playgroud)

来管理它。似乎这样做会阻止我重定向 stdout ..

对此有何想法或建议?

dim*_*sli 6

您真正想要的是 Spring Boot文件日志输出功能。

引用上面的文档:

默认情况下,Spring Boot 只会登录到控制台,不会写入日志文件。如果您想在控制台输出之外写入日志文件,您需要设置 logging.file 或 logging.path 属性(例如在您的 application.properties 中)。

基本上添加您的application.properties

logging.file=name.of.my.log.file.log
logging.path=/path/where/above/log/file/gets/stored
Run Code Online (Sandbox Code Playgroud)