Java入门13----日志

10 篇文章 0 订阅
10 篇文章 0 订阅

日志框架

日志技术概述

日志用来记录程序运行过程中的信息,并可以进行永久存储。
在这里插入图片描述
日志技术的优点:
可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。
可以随时以开关的形式控制是否记录日志,无需修改源代码。

日志技术体系结构

在这里插入图片描述

日志规范: 一些接口,提供给日志的现实框架设计的标准。
日志框架: 第三方已经做好的日志记录实现代码,可以直接使用。

LogBack概述

LogBack由log4j创始人设计的另一组开源日志软件,性能强于log4j。
LogBack是基于slf4j的日志规范实现的框架。

技术模块

LogBack主要分为三个技术模块:

  1. logback-core:logback-core模块为其他两个模块奠定了基础。
  2. logback-classic:他是log4j的一个改良版本,同时他完整实现了slf4j API。
  3. logback-access模块与Tomcat和Jetty等Servlet容器集成,以提供HTTP访问日志功能。

LogBack快速入门

LogBcak相关jar包 提取码: r4w8
在这里插入图片描述

//快速搭建logback日志框架  记录程序的执行情况到控制台到文件中
public class Test {
    public static final Logger logger=LoggerFactory.getLogger("test.class");
    public static void main(String[] args) {
        try {
            logger.debug("main执行了");
            logger.info("开启第二行日志");
            int a=10,b=0;
            logger.trace("a="+a);
            logger.trace("b="+b);
            System.out.println(a/b);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("功能异常"+e);
        }
    }
}

在这里插入图片描述

LogBack配置详解-输出位置、格式设置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
 
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="/Users/fangxin/Documents/java"/>
 
    <!--控制台日志, 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
 
    <!--文件日志, 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>1MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
 
    <!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="trace" />
    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
    <logger name="org.hibernate.SQL" level="DEBUG" />
    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
 
    <!--myibatis log configure-->
    <logger name="com.apache.ibatis" level="trace"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
 
    <!-- 日志输出级别 -->
    <root level="ALL">
        <!--注意,如果这里不配置关联打印位置,该位置将不会记录日志 -->
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE"/>
    </root>
</configuration>

LogBack配置详解-日志级别设置

级别程度依次是:TRACE<DEBUG<INFO<WARN<ERROR;默认级别是debug,对应其方法。
作用: 用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值