未创建Spring Boot日志文件

时间:2018-02-27 19:29:56

标签: spring-boot logging

我有一个spring boot app(1.5.10.RELEASE),它在Eclipse IDE中作为独立应用程序运行时记录得很好。我使用spring配置,属性文件说:

logging.level.com.myco.impl=DEBUG
logging.path=/log/myService

当我作为独立应用程序运行时,我看到我看到的所有内容都记录到控制台和上面目录中的文件(称为spring.log)。

然后我建立了我的“超级罐子”并且像这样运行:

java -jar my-service-0.1.0.jar。我看到所有控制台日志记录就像在IDE中运行一样。我可以看到它在spring配置中查找我的配置,但是我没有看到任何创建的日志文件。

我可以使用一些关于要看什么的想法。

3 个答案:

答案 0 :(得分:0)

简而言之 - 我(差不多:-))相信您没有在注释路径中设置适当的权限。日志记录配置看起来非常简单,并在here中进行了描述。你不能轻易搞错,你的看起来还不错。

棘手的部分是如何诊断确切的问题。例如,在我的系统上,如果我更改了日志记录目录的所有者,我可以使用您描述的超级jar重现行为。

接下来 - 我猜我们都将slf4jlogback一起使用(例如因spring-boot-starter而来)。了解错误的最懒惰和最快捷的方法是按照here解释logback状态消息。例如 - 以编程方式 - 还有其他选项,但我会采取最脏的:-)。把它放在代码中的某处:

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
// print logback's internal status
StatusPrinter.print(lc);

LOGGER.debug("Some other message");

如果我在我的示例应用程序中执行此操作(启动1.5.10.RELEASE),我可以立即看到控制台中打印的问题以及更多状态消息:

23:23:07,857 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(/tmp/so/spring.log,true) call failed. java.io.FileNotFoundException: /tmp/so/spring.log (Permission denied)
    at java.io.FileNotFoundException: /tmp/so/spring.log (Permission denied)

答案 1 :(得分:0)

见上面的评论。我没有包含一个我需要的jar,它对于重新初始化日志系统一旦接触到Spring云就很重要。

答案 2 :(得分:0)

问题可能是Spring Boot 1.5.10中的错误,请参阅: https://github.com/spring-projects/spring-boot/issues/11951 当应用程序无法运行时,我遇到了类似的问题,因为日志文件由root用户拥有,并且不能由应用程序用户更改。 尝试将Spring Boot升级到1.5.11 - 此版本中修复了该问题。