在 .properties 文件中指定用户的主目录

Specify user's home directory in a .properties file

我正在尝试将 p6spy (3.x.x) 集成到我的项目中,并且在 spy.properties 文件中,我想指定

logfile=${user.home}/logs/spy-%d{yyyyMMdd}.log

或至少

logfile=${user.home}/logs/spy.log 

到目前为止,我都做不到,执行失败 FileNotFoundException

java.io.FileNotFoundException: ${user.home}/logs/spy.log (No such file or directory) 

我的是一个 Spring 引导项目,合作者 运行 不同的操作系统。默认情况下,它在项目根目录中创建 spy.log 文件,这并不好。

是否可以像我希望的那样在 .properties 文件中指定相对路径?如果是,如何?

非常感谢!

P6spy 不支持占位符。这就是 ${user.home} 无法识别的原因,您可以尝试我的库 https://github.com/gavlyukovskiy/spring-boot-data-source-decorator 中的 p6spy-spring-boot-starter,它将 p6spy 集成到 spring 引导中,允许您使用应用程序。properties/yml 其中支持占位符而不是 spy.properties.

您应该将其放入您的应用程序属性中: decorator.datasource.p6spy.logging=file decorator.datasource.p6spy.log-file=${user.home}/logs/spy.log

但是如果您想轮换日志,最好使用 slf4j 并将自定义附加程序添加到您的日志库以仅捕获 p6spy 日志。