使用IEDA下 测试和调试项目的时候,都是往屏幕上输出,也就是控制台.如何往文件里输出呢?这就要涉及到JAVA的众多框架
1 log4j
2 log4j2
3 slf4j
4 logback
百度下都是老日志框架组合输出,公司使用log4j 翻了翻不知道怎么配置的
折腾2天或许是3天,放弃了. 最终选择SPRINGBOOT自身带的框架LOGBACK和MYBAITS-PLUS 自身框架SLF4J 组合
首先 在POM.XML 引入包
org.springframework.boot
spring-boot-starter-logging
其二 在resources 新建个XML文件 logback-spring.xml
具体设置放在最后,这个不是重点
其三 在项目配置文件里 application-dev.properties 设置
3.1
logging.config.classpath = logback-boot.xml
YML格式:
logging:
config: classpath:logback-boot.xml
这样就把日志配置文件关联起来了. 默认情况下 日志配置名是 logback-spring.xml. 所以上面就不用写!
3.2 开启DEBUG模式
logging.level.com.baomidou.mybatisplus=DEBUG
#项目mapper的接口目录
logging.level.com.example.demo.MapperInterface=DEBUG
第一个属性照写就行,baomidou. 好像是某个项目名称,其实非也!
第二个属性是XML文件对应的方法接口类
下面是LOGBACK.XML设置.中英文注释,大家应该看懂七七八八
logback
debug
${CONSOLE_LOG_PATTERN}
UTF-8
${log.path}/debug.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/debug-%d{yyyy-MM-dd}.%i.log
100MB
15
debug
ACCEPT
DENY
${log.path}/info.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/info-%d{yyyy-MM-dd}.%i.log
100MB
15
info
ACCEPT
DENY
${log.path}/warn.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/warn-%d{yyyy-MM-dd}.%i.log
100MB
15
warn
ACCEPT
DENY
${log.path}/error.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/error-%d{yyyy-MM-dd}.%i.log
100MB
15
ERROR
ACCEPT
DENY
最后看下效果
设置好了运行测试OK 会在项目里出现LOGS目录
出现了4个日志文件,自然大家可以把4个文件合并在一起
日志输出图,它同时在控制台和日志文件里输出.
下面两个在 application-dev.properties 或者是 application.properties 项目属性设置
logging.level.com.baomidou.mybatisplus=DEBUG
只输出
2023-10-10 17:38:51.099 [main] DEBUG c.b.m.e.spring.MybatisSqlSessionFactoryBean - Parsed mapper file: 'file [D:MY_JAVA_PROJECTSShark_Java_DemotargetclassesMapperPersonal.xml]'
下面这个会输出SQL和参数, 这个是MAP文件 JAVA 接口 目录
logging.level.com.example.demo.MapperInterface=DEBUG
优秀员工搞不定的事DBA搞定了
关于JAVA分页新知识
DBA 讨厌JAVA分页插件,随手写个分页代码