第一步、进入pom配置
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
ps:下面logger-config.xml和log4j.properties文件放在resources根目录。
第二步、logger-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <!-- 引入配置文件 --> <property resource="log4jxxc.properties"/> <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】 --> <!-- 定义控制台输出格式 --> <!-- appender(附加):是 configuration 的子节点,是负责写日志的组件 --> <!--ConsoleAppender :是将信息输出到控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender" > <encoder> <!-- patter(模式)--> <!-- %d{pattern}日期 %m或者%msg为信息 %M为method %L为行号 %thread线程名称 %n换行 %-5level %C{length} | %class{length} %c {length } | %lo {length } | %logger {length } 输出日志的logger名,可有一个整形参数,功能是缩短logger名,设置为0表示只输入logger最右边点符号之后的字符串。 Conversion specifier Logger name Result --> <pattern>${log.txtPatternPolicy}</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 配置log 文件生成策略 --> <!-- RollingFileAppender: 符合定义条件后,将会重新新建文件进行记录 --> <appender name="server" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${log.fileBackupPath}${log.fileName}</File> <!-- TimeBasedRollingPolicy : 是一种基本的滚动策略,会根据时间来进行制定策略,既负责滚动,也负责触发--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- fileNamePattern: 文件命名模式 --> <fileNamePattern>${log.fileBackupPath}${log.backupFileNamePolicy}</fileNamePattern> <!-- 文件存在时间 --> <maxFileSize>${log.fileSize}</maxFileSize> <maxHistory>${log.history}</maxHistory> <totalSizeCap>${log.totalSize}</totalSizeCap> </rollingPolicy > <encoder> <!-- pattern : 用来定义log 日志文件的输入格式 --> <pattern> ${log.txtPatternPolicy} </pattern> <charset>UTF-8</charset> </encoder> </appender> <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /> <logger name="org.hibernate.type" level="TRACE" /> <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" /> <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" /> <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /> <!-- 日志级别 --> <!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE --> <root level="INFO"> <appender-ref ref="console"/> <appender-ref ref="server"/> </root> </configuration>
第三步、log4j.properties 资源文件
###################### log 配置 ###################### ###################### log 配置 #日志文件输出路径 可自定义 log.fileBackupPath=/usr/local/project/ log.history=30 log.fileSize=10mb log.totalSize=100mb #当前日志文件名称 log.fileName=log4j-test.log #备份日志文件命名策略 log.backupFileNamePolicy=test-%d{yyyy-MM-dd}.%i.log #日志文本生成策略 # d:时间 C:类名称 M:方法名称 L:行号 m:消息 n:换行 log.txtPatternPolicy=%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %C{36} %M %L - %m %n
第4步、修改application.yml,加上以下配置
logging:
config: classpath:logger-config.xml
第五步,使用
在需要打印日志的类中创建静态变量
private static final Logger logger = LoggerFactory.getLogger(ApiUserController.class);
然后就可在方法中调用例如:
logger.info("这是日志。。。");
完成。。。