Contents
  1. 1. logback
    1. 1.1. demo
    2. 1.2. logback打印mybatis的sql配置
    3. 1.3. logback框架在代码中做log输出
    4. 1.4. 设置logback的文件日志的规则(按天生成、按大小生成、按时间和大小生成 3种模式)
  2. 2. log4j配置
    1. 2.1. log4j提供的Appender
    2. 2.2. 配置日志信息的格式(布局)
    3. 2.3. 自定义日志输出格式设置
    4. 2.4. Demo说明
    5. 2.5. log4j打印mybatis sql语句配置

logback

demo

  1. 先设置appender
  2. 再用root设置级别,并且关联appender.name,就配置好了
     <configuration>
          <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
          <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
          </encoder>
          </appender>
          <root level="DEBUG">
            <appender-ref ref="STDOUT" />
          </root>
        </configuration>

logback打印mybatis的sql配置

需要在配置文件当中配置 如下信息,则会在file日志输出当中打印出sql,方便调试

<configuration>
***
<logger name="com.ge.eapp" level="debug" />
<logger name="jdbc.sqltiming" level="debug"/>
<logger name="com.ibatis" level="debug" />
<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="debug" />
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="debug" />
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate"
level="debug" />
<logger name="java.sql.Connection" level="debug" />
<logger name="java.sql.Statement" level="debug" />
<logger name="java.sql.PreparedStatement" level="debug" />
<logger name="java.sql.ResultSet" level="debug" />
***
</configuration>

logback框架在代码中做log输出

@Slf4j 标志,然后log.info就可以输出到日志文件当中了

@Controller
@RequestMapping("/region")
@Slf4j
public class RegionAction {
@ResponseBody
@RequestMapping(value = "/provinceList", method = RequestMethod.GET)
public List<Map<String, Object>> getProvinceList() {
log.info("getProvinceList() entered");
return toInfoMapList(regionService.getProvinceList());
}
}

设置logback的文件日志的规则(按天生成、按大小生成、按时间和大小生成 3种模式)

1. 按时间归档
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/consumer.%d{yyyy-MM-dd_HH}.log</FileNamePattern>
<!-- 日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
2. 按照文件大小进行归档
<appender name="all" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>../front-end-logs/front-end.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>../front-end-logs/front-end.%i.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>100</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%date %-5level - %msg%n</Pattern>
</layout>
</appender>
<appender name="all" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>./front-end-logs/front-end.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>front-end-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>5MB</maxFileSize>
<maxHistory>15</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%date [%thread] %-5level - %msg%n</Pattern>
</layout>
</appender>

log4j配置

  • Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式
  • level 是日志记录的优先级,ERROR、WARN、INFO、DEBUG

  • 指定根级别的日志级别和日志信息输出目的地Appender

    log4j.rootLogger = [ level ] , appenderName, appenderName, …

log4j提供的Appender

  • org.apache.log4j.ConsoleAppender(控制台),
  • org.apache.log4j.FileAppender(文件),
  • org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  • org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

配置日志信息的格式(布局)

  • org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  • org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  • org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

自定义日志输出格式设置

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

Demo说明

# 指定日志的级别 --> DEBUG 和要输出目的地 --> stdout和 D(只是个代号,需要分别在下面去定义stdout 和 D
log4j.rootLogger = DEBUG,stdout,D
#指定stdout的Appender的类型 为控制台
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
#指定日志的输出格式为自定义类型
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#定义自定义类型的格式
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ../dh-edu-logs/transaction.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

log4j打印mybatis sql语句配置

  • 必须要指定mybatis的log框架为LOG4J,配置mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <properties>
    <property name="dialect" value="mysql" />
    </properties>
    <settings>
    <setting name="logImpl" value="LOG4J" />
    </settings>
    </configuration>
  • 嵌入mybatis配置文件

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <property name="mapperLocations" value="classpath:com/test/mapping/*.xml"></property>
    </bean>
  • 配置log4j

    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{HH:mm:ss,SSS} method:%l%n%m%n
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = ../dh-edu-logs/transaction.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
    log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    log4j.rootLogger = DEBUG,stdout,D
Contents
  1. 1. logback
    1. 1.1. demo
    2. 1.2. logback打印mybatis的sql配置
    3. 1.3. logback框架在代码中做log输出
    4. 1.4. 设置logback的文件日志的规则(按天生成、按大小生成、按时间和大小生成 3种模式)
  2. 2. log4j配置
    1. 2.1. log4j提供的Appender
    2. 2.2. 配置日志信息的格式(布局)
    3. 2.3. 自定义日志输出格式设置
    4. 2.4. Demo说明
    5. 2.5. log4j打印mybatis sql语句配置