2021-08-01 Spring温习 持续更新...

spring 本文顺序全部按照 spring中文文档顺序进行的 地址:spring中文地址

  • Logging 日志
      未使用日志控制台显示
    1.使用 Log4j 1.2 或 2.x
    maven依赖
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.21.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

resource下面创建 log4j2.properties

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
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

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.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

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

加入日志控制台信息

  • Log4j 2.x 与 JCL 一起使用
    加入依赖
<dependencies>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-jcl</artifactId>
        <version>2.6.2</version>
    </dependency>
</dependencies>

log4j2.properties文件内容

#用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出
status = debug
dest = err
name = PropertiesConfig

#日志文件名称
property.filename = d:/logs/rollingtest.log
#日志文件内容的格式,说明:
#%n-换行
#%m-日志内容
#%p-日志级别(FATAL,ERROR,WARN...)
#%F-java源文件名
#%t 输出产生该日志事件的线程名
#%d 输出日志时间点的日期或时间
#%L-java源码行数
#%C-java类名
#%M-java方法名
#%l-输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
property.layoutPattern = %-d{yyyy-MM-dd HH:mm:ss,SSS} %p %c %m%n

# 级别过滤(过滤日志记录)
filter.threshold.type = ThresholdFilter
# 只记录debug级别以上的日志,大小写无关:(ALL<)TRACE<DEBUG<INFO<WARN<ERROR<FATAL(<OFF)
filter.threshold.level = debug

# 控制台类型的日志输出源
appender.console.type = Console
# 输出源的名称
appender.console.name = STDOUT
#输出类型
appender.console.target = SYSTEM_OUT
# 输出布局类型
appender.console.layout.type = PatternLayout
# 输出模板
appender.console.layout.pattern = ${layoutPattern}

# 文件日志输出源
appender.rolling.type = RollingFile
#输入源名称
appender.rolling.name = RollingFile
#日志文件名
appender.rolling.fileName = ${filename}
#指定当发生文件滚动时,文件重命名规则
appender.rolling.filePattern = d:/logs/test1-%d{yyyyMMdd}-%i.log
# 滚动记录输出源布局类型
appender.rolling.layout.type = PatternLayout
# 输出模板
appender.rolling.layout.pattern = ${layoutPattern}
# 指定记录文件的保存策略,该策略主要是完成周期性的日志文件保存工作
appender.rolling.policies.type = Policies
# 基于时间的触发策略(TriggeringPolicy)
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
# 当前记录周期为每2秒生成一个文件,如果filePattern中配置的文件重命名规则是test1-%d{yyyy-MM-dd HH-mm}-%i,
#最小的时间粒度是mm,即分钟,TimeBasedTriggeringPolicy指定的size是1,结合起来就是每2分钟生成一个新文件。
#如果改成%d{yyyy-MM-dd HH},最小粒度为小时,则每2个小时生成一个文件。
appender.rolling.policies.time.interval = 2
# 是否对保存时间进行限制。若modulate=true,则保存时间将以0点为边界进行偏移计算。
#比如,modulate=true,interval=4hours,
#那么假设上次保存日志的时间为03:00,则下次保存日志的时间为04:00,之后的保存时间依次为08:00,12:00,16:00
appender.rolling.policies.time.modulate = true
# 基于日志文件大小的触发策略
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
# 当日志文件大小大于size指定的值时,触发滚动
appender.rolling.policies.size.size=100MB
# 文件保存的覆盖策略
appender.rolling.strategy.type = DefaultRolloverStrategy
# 生成分割(保存)文件的个数,默认为5(-1,-2,-3,-4,-5)
appender.rolling.strategy.max = 5


# 记录器名称
logger.rolling.name = com.video.demo
# 设置日志级别
logger.rolling.level = debug
# 是否向上级logger传递信息
logger.rolling.additivity = true

# 关联名称为RollingFile的输出源(appender)
logger.rolling.appenderRef.rolling.ref = RollingFile


#设置SpringFramework框架的日志级别,一般业务上不需要其它使用了log4j的框架输出日志
logger.SpringFramework.name = org.springframework
logger.SpringFramework.level = INFO

#当有其它框架的也使用了log4j时,会输出相应日志,以下方式为屏蔽其它框架的日志信息(设置日志级别)
#logger.Http.name = org.apache.http
#logger.Http.level = TRACE


# 根记录器,所有记录器的父辈
rootLogger.level = debug

# 关联名称为STDOUT的输出源(appender)
rootLogger.appenderRef.stdout.ref = STDOUT

控制台输出
启用 SLF4J 来委派给 Log4j
依赖

  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.6.2</version>
  </dependency>

log4j2.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="org.springframework.beans.factory" level="DEBUG"/>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

控制台图片
避免公共记录

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.21.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

控制台输出
将 SLF4J 与 Log4j 或 Logback 一起使用

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.21.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

在 SLF4J 用户中,更常见的选择是直接绑定到Logback,该步骤使用更少的步骤并生成更少的依赖项。因为 Logback 直接实现 SLF4J,所以省去了额外的绑定步骤,因此您只需要依赖两个库,即jcl-over-slf4j和logback)

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.7</version>
    </dependency>
</dependencies>

控制台输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值