企业网站优化外包,怎么建立一个网站网址,北京营销型网站建设哪家好,中山360推广原因#xff1a;持久层框架对于Log接口实现方式不一样#xff0c;日记记录的位置及展示方式也也不一样
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # sql只会打印到控制台不会输出到日志文件种mybatis-plus:configuration:log-impl…原因持久层框架对于Log接口实现方式不一样日记记录的位置及展示方式也也不一样
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # sql只会打印到控制台不会输出到日志文件种mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl # 此种会将sql写入到日志文件中可以分别配置到两个环境中,dev用StdOutImpl,prod用Slf4jImpl或者其他的都行,具体需要看他是如何实现的,使用logger对象输出的都是会写入日志的,使用System.out或err的只会在控制台显示,以下是实验.log是日志文件 StdOutImpl和Slf4jImpl的区别就在于实现输出方面的区别
** Slf4jImpl **
import org.apache.ibatis.logging.Log;
public class Slf4jImpl implements Log {
// 部分代码private Log log;Overridepublic void error(String s) {log.error(s);}Overridepublic void debug(String s) {log.debug(s);}
} **StdOutImpl 使用的是System.out/err输出**
public class StdOutImpl implements Log {
// 部分代码Overridepublic void error(String s) {System.err.println(s);}Overridepublic void debug(String s) {System.out.println(s);}
}包括以下接口逗是属于mp活着mybatis可用得日志实现类 这些都不满足得可以实现Log接口自己写实现了或者继承NoLoggingImpl重写内部方法 同时附上一个logback-spring.xml配置或许用的上
?xml version1.0 encodingUTF-8?
configuration scantrue scanPeriod10 seconds!-- 日志级别从低到高分为TRACE DEBUG INFO WARN ERROR FATAL如果设置为WARN则低于WARN的信息都不会输出 --!-- scan:当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true --!-- scanPeriod:设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 --!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 --contextNamelogback/contextName!-- 全局属性name的值是变量的名称value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后可以使“${}”来使用变量。 --!-- 日志文件路径属性,不同环境日志输出位置不一样 --springProfile namedevproperty namelog.path value./logs//springProfilespringProfile nameprodproperty namelog.path value./logs//springProfile!-- 控制台日志输出格式属性magenta:洋红,boldMagenta:粗红,cyan:青色,white:白色,magenta:洋红--property nameCONSOLE_LOG_PATTERNvalue%yellow(%date{yyyy-MM-dd HH:mm:ss})|%highlight(%-5level)|%blue(%thread)|%blue(%file:%line)|%green(%logger)|%cyan(%msg%n)/!--输出到控制台的Appender配置--appender nameCONSOLE classch.qos.logback.core.ConsoleAppender!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息--!-- 例如如果此处配置了INFO级别则后面其他位置即使配置了DEBUG级别的日志也不会被输出 --filter classch.qos.logback.classic.filter.ThresholdFilterlevelINFO/level/filterencoder!-- 输出日志格式 --Pattern${CONSOLE_LOG_PATTERN}/Pattern!-- 设置字符集 --charsetUTF-8/charset/encoder/appender!--输出到文件的Appender配置 info日志--appender nameINFO_FILE classch.qos.logback.core.rolling.RollingFileAppender!-- 日志具体路径及文件名 --file${log.path}/log_info.log/file!--日志文件输出格式--encoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 每天日志归档路径以及格式 --fileNamePattern${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory30/maxHistory/rollingPolicy!-- 此日志文件只记录info级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelINFO/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--输出到文件的Appender配置 warn日志--appender nameWARN_FILE classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/log_warn.log/fileencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory30/maxHistory/rollingPolicy!-- 此日志文件只记录warn级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelwarn/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--输出到文件的Appender配置 error日志--appender nameERROR_FILE classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/log_error.log/fileencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory30/maxHistory/rollingPolicy!-- 此日志文件只记录ERROR级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--输出到文件的Appender配置 SQL执行日志--appender nameSQL_FILE classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/log_sql.log/fileencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/sql/log-sql-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory30/maxHistory/rollingPolicy!-- 此日志文件记录TRACE级别以上 --filter classch.qos.logback.classic.filter.LevelFilterlevelDEBUG/levelonMatchACCEPT/onMatch!-- onMismatchDENY/onMismatch--/filter/appender!-- logger用来设置某一个包或者具体的某一个类的日志打印级别。有name属性可选的level和可选的addtivity属性以及可指定appender。name:用来指定受此logger约束的某一个包或者具体的某一个类。level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF如果未设置此属性那么当前logger将会继承上级的级别。addtivity :是否向上级loger传递打印信息。默认是true。--!--使用mybatis的时候sql语句是debug下才会打印spring默认日志级别是INFO所以想要查看sql语句的话有以下两种操作第一种把root levelINFO改成root levelDEBUG这样就会打印sql不过这样日志那边会出现很多其他消息第二种就是单独给mapper下目录配置DEBUG级别例如logger namecom.kingoit.mapper levelDEBUG/或者在配置文件中配置logging.level.com.kingoit.mapperDEBUG这样配置sql语句会打印其他还是正常INFO级别--!--开发环境--springProfile namedev!--单独设置mapper包下的日志级别为TRACE因为输出执行的sql需要DEBUG级别TRACE级别小于DEBUG设置为TRACE级别同时将SQL执行结果输出--logger namecom.xxx.yy levelTRACEappender-ref refSQL_FILE//logger!-- root节点是必选节点用来指定最基础的日志输出级别只有一个level属性level:指定打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF默认是DEBUG可以包含零个或多个appender元素。--root levelINFOappender-ref refCONSOLE/appender-ref refINFO_FILE/appender-ref refWARN_FILE/appender-ref refERROR_FILE//root/springProfile!--生产环境--springProfile nameprod!--单独设置mapper包下的日志级别为DEBUG因为输出执行的sql需要DEBUG级别--logger namecom.xxx.yy levelDEBUGappender-ref refSQL_FILE//loggerroot levelINFOappender-ref refCONSOLE/appender-ref refINFO_FILE/appender-ref refERROR_FILE/appender-ref refWARN_FILE//root/springProfile/configuration