无法找到SQL调用的Java函数写入的日志文件如何查找
TextToPDFGenerator类日志路径排查方案
Java类的日志存储路径没有全局统一默认值,完全由项目使用的日志框架配置、程序部署方式决定,按以下优先级排查就能找到:
- 优先查项目日志配置文件
直接去项目资源目录(一般是src/main/resources)找对应日志框架的配置文件,里面会明确写死日志输出路径:- 用Logback的话找
logback.xml/logback-spring.xml,看<appender>标签下的file、fileNamePattern属性值,就是日志的存储位置,如果写的是相对路径,基准路径是程序启动时的工作目录 - 用Log4j/Log4j2的话找
log4j.properties/log4j2.xml,找文件输出appender对应的File参数值即可 - 用JDK自带日志的话找
logging.properties,看java.util.logging.FileHandler.pattern的配置
- 用Logback的话找
- 无自定义配置时的默认常见路径
如果你没手动修改过日志配置,按部署方式找对应位置:- 本地直接启动main方法/直接跑jar包的程序,先看你执行启动命令所在的文件夹,或者jar包所在目录下的
logs文件夹,大部分默认配置会把日志存在这个位置 - 部署在Tomcat等Web容器的项目,直接去容器安装目录下的
logs文件夹找,业务类的报错如果没单独输出,大概率会存在catalina.out或者对应应用名的日志文件里 - SpringBoot项目没额外配日志路径的话,开启文件输出后默认会在启动目录生成
spring.log
- 本地直接启动main方法/直接跑jar包的程序,先看你执行启动命令所在的文件夹,或者jar包所在目录下的
- 快速定位技巧
要是找配置太麻烦,可以直接全局搜最近更新的.log后缀文件,大部分业务日志都会带.log后缀;如果能临时改代码,在调用TextToPDFGenerator的位置加一行System.out.println("程序工作目录:" + System.getProperty("user.dir"));,打出来的路径就是所有相对路径的基准目录,顺着找就行。
额外提醒:如果TextToPDFGenerator返回false的逻辑本身吞了异常没打印日志,就算找到日志文件也看不到具体报错,这种情况不如直接在调用层加try-catch打印完整异常栈,定位故障效率更高。
内容的提问来源于stack exchange,提问作者Shwetha
相关产品推荐
相关产品推荐

