接口:
slf4j 是所有日志框架的规范、标准、接口。需要(如log4j、logback)实现使用
实现:
log4j 是apache实现的一个开源日志组件
logback 同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现
Log4j2 是log4j 1.x和logback的改进版,采用无锁异步等,使日志吞吐量、性能比log4j 1.x提高10倍,并解决了一些死锁的bug,而且配置更加简单灵活
一、springboot开启日志
1,引入lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2,在类上加@Slf4j注解
3,在方法上加log.info(“打印内容”);即可
二、springboot配置mybatis的sql日志
在application.properties中配置
#配置mybatis日志,其中“logging.level.”为前缀,“com.sanwu.mapper”为Mapper接口所在的包路径。
logging.level.com.sanwu.mapper=debug
三、springMVC开启日志
log4j.properties配置文件
### set log levels ###
log4j.rootLogger=debug,console,file
### 输出到控制台 ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.Threshold=debug
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n
### 输出到文件 ###
## 其中File 可以采用绝对路径 亦可以采用相对路径 catalina.home 是tomcat目录 如果没有logs文件夹 将会报错 ##
## 更加倾向于将日志文件放在 tomcat的日志目录下${catalina.home}/logs/salesmanb2bError.log ##
## 绝对路径如:e:/salesmanb2bError.log ##
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=./log/chenxb.log
log4j.appender.file.Threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n
### 日志输出级别 ###
log4j.logger.org.mybatis=debug
log4j.logger.java.sql=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.ResultSet=debug
log4j.logger.java.sql.PreparedStatement=debug
XML配置
<settings>
<!--标准日志工厂-->
<!--<setting name="logImpl" value="STDOUT_LOGGING"/>-->
<setting name="logImpl" value="LOG4J"/>
</settings>
在类中引入
static Logger logger = Logger.getLogger(MyTest.class);
在方法中调用
logger.debug("111111111111111");
其他 Dubbo-Admin的log4j.properties配置文件(作为参考)
log4j.rootCategory=INFO, stdout, file
log4j.logger.org.apache=ERROR
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.target=System.out
log4j.appender.stdout.Threshold=INFO
log4j.appender.stdout.encoding=GBK
log4j.appender.stdout.layout.ConversionPattern=%5p %c{2} - %m%n
# 文件输出
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=dubbo-governance.log
log4j.appender.file.Threshold=INFO
log4j.appender.file.append=true
log4j.appender.file.maxFileSize=10MB
log4j.appender.file.maxBackupIndex=100
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %C{6} (%F:%L) - %m%n
阿里日志规范
在日志输出时,字符串变量之间的拼接使用占位符的方式。
说明:
因为 String 字符串的拼接会使用 StringBuilder 的 append()方式,有一定的性能损耗。
使用占位符仅是替换动作,可以有效提升性能。
正例:logger.debug(“Processing trade with id: {} and symbol: {}”, id, symbol);