IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 2021-07-26 -> 正文阅读

[Java知识库]2021-07-26

java日志


前言

本人太菜,只学会了slf4j+logback,而且只学会了皮毛

一、日志简介

  1. 日志实现:JUL,logback,Log4j,Log4j2
  2. 日志门面(接口):JCL,slf4j
  3. 为了解决不同日志实现之间的没有关联才出现的日志门面
  4. 目前最流行(可能是几年前了)的搭配是slf4j+logback

二、前置知识

1.maven

  1. Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
  2. maven可以用来解决依赖的问题(不用自己手动的导入jar包,而且还能管理jar包)
  3. idea里自带maven,当然也可以用自己的maven

2.jar包

  1. jar 是 Java ARchive 的缩写。jar包是别人已经写好的一些类,然后将这些类打包,如果想用,直接把包引入项目,就可以直接用了

3.slf4j

  1. 五个级别:error、warn、info、debug、trace
  2. 获取日志记录器public static final Logger LOGGER= LoggerFactory.getLogger(slf4j_test.class);
  3. 导入的一定是这两个包
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
		try {
            int i=1/0;
        }catch (Exception e){
           LOGGER.error("...",e);//不要e.print...
        }
  1. 添加slf4j-api的依赖
  2. slf4j有且仅有一个日志实现框架的绑定(也就是logback.classic和slf4j-log4j2、slf4j-simple不能同时出现)

4.logback

  1. logback分为三个模块
    • logback-core 其他两个模块的基础模块
    • logback-classic 是log4j的一个改良版本,同时完整的实现了slf4j API
    • logback-access 访问模块与。。。。。
  2. 添加依赖
		<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.26</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
  1. 在resources下面创建logback.xml文件,在里面可以配置

    • 日志输出配置
    • 日志级别
    • Appender类型
    • 文件输出路径
  2. 同步日志和异步日志

  3. 自定义logger实现输出的灵活控制

  4. 在类前面@Slf4j可以定义出一个Logger(lombok)

  5. 所有logger都是root logger(debug)的后代(继承)

  6. 打印日志用占位符,避免字符串拼接,避免level判断。log.debug("Current count is {}" , count);占位符{}允许接收任何object,并且调用其toString方法来记录日志。

三、各种配置已经常见问题

1.@Test爆红

  1. 添加依赖
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
  1. 导入的一定是这个import org.junit.Test;

2.设置jdk

			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>16</source>
                    <target>16</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>

3.logback.xml里的常用配置

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
	<!--日志输出格式-->
    <property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c %M %L [%thread] %m%n"></property>
    
	<!--文件输出路径-->
    <property name="log_dir" value="SGS"></property>


    <!--控制台输出-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--控制输出流对象-->
        <target>System.err</target>
        <!--日志消息格式   也就是自定义Layout-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>


    <!--文件日志输出-->
    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <!--日志文件保存路径-->
        <file>${log_dir}/SGS.log</file>
        <!--日志消息格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <root level="ALL">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>
</configuration>

四、打jar包

这不是唯一打jar包的方法,其他方法我还不会操作, 引入第三方jar包 的问题困扰了我很久

  1. 打开项目结构,按照一下步骤点开
    在这里插入图片描述
  2. 添加主类点确定
    在这里插入图片描述
  3. 最后成这样子
    在这里插入图片描述
  4. 项目-构建工件
    在这里插入图片描述
  5. 最后在这个目录下就出来了jar包了
    在这里插入图片描述
  6. 打开cmd,到jar包所在目录,然后java -jar xxx.jar就可以运行了

五:细节问题

1.如何把txt也打入jar包

  1. 在resources里加入xxx.txt
    在这里插入图片描述
  2. 用一下方法读取文件就可以了
		InputStream is=this.getClass().getResourceAsStream("/wujiang.txt");
        BufferedReader br=new BufferedReader(new InputStreamReader(is));

总结

  • 持续更新中…
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 00:11:50  更:2021-07-28 00:12:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 12:50:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码