我有一个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配置中查找我的配置,但是我没有看到任何创建的日志文件。
我可以使用一些关于要看什么的想法。
答案 0 :(得分:0)
简而言之 - 我(差不多:-))相信您没有在注释路径中设置适当的权限。日志记录配置看起来非常简单,并在here中进行了描述。你不能轻易搞错,你的看起来还不错。
棘手的部分是如何诊断确切的问题。例如,在我的系统上,如果我更改了日志记录目录的所有者,我可以使用您描述的超级jar重现行为。
接下来 - 我猜我们都将slf4j
与logback
一起使用(例如因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 - 此版本中修复了该问题。