全局配置文件application.properties中的简单日志配置:
## log ##
logging.level.root=info
# 日志文件路径及文件名,路径不配置默认当前项目,logging.file配置后logging.path不会再生效
logging.file=/restapi.log
# 日志文件路径 默认生成的文件名spring.log
logging.path=/springboot/logs
# 在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
# 日志文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
# sql #
# logging.level.包名
logging.level.com.app.dao.mysql=debug
logging.level.root=info:根日志的输出级别为info,一般常用的有debug<info<warn<error,日志级别最高的为error,springboot默认级别为info,日志数据太多影响了系统执行速度的时候,想关闭日志的话调为warn或error即可。
logging.file=/restapi.log:在当前系统所在盘下生成restapi.log日志记录文件,可/folder/restapi.log这种格式添加子文件夹。
logging.path=/springboot/logs:在当前系统所在盘下的springboot/logs子文件夹下生成spring.log日志记录文件,默认的文件名spring.log好像是不让修改的,优先级比logging.file低,在配置了logging.file后本属性不会再生效。
默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。如果要编写除控制台输出之外的日志文件,则需在application.properties中设置logging.file或logging.path属性。
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n:
-
%d表示当前时间,{yyyy-MM-dd HH:mm:ss}表示时间格式。
-
%thread表示线程名称。
-
%‐5level:日志级别从左显示5个字符宽度。
-
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
-
%msg:日志详细消息。
-
%n:换行。
logging.level.com.app.dao.mysql=debug:com.app.dao.mysql包下日志级别使用debug模式,主要是为了记录mysql的sql执行语句,mybatis打印sql执行语句默认是debug级别。
Java代码中使用logger:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
protected static final Logger logger = LoggerFactory.getLogger(this.getClass());
springboot默认使用的是logback记录日志,其支持jar包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.0.5.RELEASE</version>
<scope>compile</scope>
</dependency>
默认已包含在spring-boot-starter中,所以引入spring-boot-starter依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>