log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="myConsole" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{MM-dd HH:mm:ss,SSS} %-5p] [%t] %c{2\} - %m%n%ex"/>
</Console>
<RollingFile name="activexAppender" fileName="/opt/dsf/log/data_query/data_query.log"
filePattern="/opt/dsf/log/data_query/data_query.log-%d{yyyyMMdd}">
<PatternLayout>
<Pattern>[%d{MM-dd HH:mm:ss SSS} %-5level] [%t] %c{3} - %m%n%ex</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<RollingFile name="spLogger_appender" fileName="/opt/dsf/log/data_query/sp/data_query.log"
filePattern="opt/dsf/log/data_query/sp/data_query.log-%d{yyyyMMdd}">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="myConsole"/>
<AppenderRef ref="activexAppender"/>
</Root>
<!--name 特殊指明某个自定义logger对象 可以为字符串,也可以为指定类的全路径
additivity =false则不往root路径下的日志里边打印 level为info级别 下边的appender-ref 指定哪一个appender-->
<logger name="spLogger" additivity="false" level="info" includeLocation="true">
<appender-ref ref="spLogger_appender"/>
</logger>
<!--<logger name="com.daojia.data.query.util.SPLogUtils" additivity="false" level="info" includeLocation="true">-->
<!--<appender-ref ref="spLogger_appender"/>-->
<!--</logger>-->
</Loggers>
</Configuration>
java类SPLogUtils
package com.daojia.data.query.util; import com.alibaba.fastjson.JSON; import com.daojia.data.query.vo.SPLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Created by liquanyu on 2018-05-28 */ public class SPLogUtils { //这里是用字符串指定特殊logger对象,也可以用类 eg: private static final Logger spLogger = LoggerFactory.getLogger("spLogger"); // private static final Logger spLogger = LoggerFactory.getLogger(SPLogUtils.class); public static void log(String sql, Integer dsId) { spLogger.info(JSON.toJSONString(new SPLog(sql, dsId))); } }
类SPLog
package com.daojia.data.query.vo; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * Created with IDEA * description: * author:liquanyu * Date:2018/5/28 * Time:10:48 */ public class SPLog { private String logTime; private String sql; private Integer dsId; public SPLog(String sql, Integer dsId) { this.logTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.dsId = dsId; this.sql = sql; } public String getLogTime() { return logTime; } public void setLogTime(String logTime) { this.logTime = logTime; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; } public Integer getDsId() { return dsId; } public void setDsId(Integer dsId) { this.dsId = dsId; } }