首页 > 编程语言 >常见日志输出目标(Logback | Log4j2 | Java Util Logging)

常见日志输出目标(Logback | Log4j2 | Java Util Logging)

时间:2024-07-25 22:10:04浏览次数:9  
标签:util Java java 配置 Util 输出 logging 日志 Log4j2

常见日志输出目标

  1. 控制台

    • 日志可以被输出到控制台(终端),通常用于开发和调试阶段。
    • 在日志框架中,控制台输出通常由ConsoleAppender(例如Log4j、Logback)配置。
  2. 日志文件

    • 日志也可以被写入到日志文件中,以便于长期存储和分析。
    • 在日志框架中,文件输出通常由FileAppender(例如Log4j、Logback)配置。
  3. 远程日志服务器

    • 有时,日志消息会被发送到远程日志服务器或日志管理系统(如ELK Stack、Splunk)用于集中管理和分析。
    • 这种配置通常需要使用相应的Appender或Handler,并配置网络参数。
  4. 数据库

    • 日志消息也可以存储在数据库中,便于进行复杂的查询和分析。
    • 这种配置通常涉及到专门的Appender或Handler。

如何配置日志输出

日志的具体输出配置依赖于使用的日志框架。以下是几种常见的日志框架及其配置方式:

1. Logback

Logback是一个常用的日志框架,通常与SLF4J一起使用。可以通过logback.xml文件配置日志的输出目标。

<configuration>
    <!-- 控制台输出 -->
    <appender name="ConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 文件输出 -->
    <appender name="FileAppender" class="ch.qos.logback.core.FileAppender">
        <file>app.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 日志级别和输出目标 -->
    <root level="debug">
        <appender-ref ref="ConsoleAppender" />
        <appender-ref ref="FileAppender" />
    </root>
</configuration>

2. Log4j2

Log4j2是另一个流行的日志框架,也可以与SLF4J一起使用。可以通过log4j2.xml文件配置日志输出。

<Configuration>
    <Appenders>
        <!-- 控制台输出 -->
        <Console name="ConsoleAppender" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n"/>
        </Console>

        <!-- 文件输出 -->
        <File name="FileAppender" fileName="app.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>

    <Loggers>
        <Root level="debug">
            <AppenderRef ref="ConsoleAppender"/>
            <AppenderRef ref="FileAppender"/>
        </Root>
    </Loggers>
</Configuration>

3. Java Util Logging

java.util.logging是Java标准库中的日志框架。可以通过logging.properties文件配置输出。

handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
.level=INFO

java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

java.util.logging.FileHandler.level=INFO
java.util.logging.FileHandler.pattern=app.log
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

总结

  • 控制台输出:通常用于开发和调试阶段,配置为ConsoleAppender或类似的Appender。
  • 日志文件:用于持久化日志记录,配置为FileAppender或类似的Appender。
  • 远程服务器/数据库:用于集中日志管理和分析,配置为相应的Appender或Handler。

可以根据项目需求和环境配置日志输出的目标和格式。

标签:util,Java,java,配置,Util,输出,logging,日志,Log4j2
From: https://www.cnblogs.com/echohye/p/18324235

相关文章

  • java | final 关键字介绍
    在Java中,final关键字用于声明一个常量、不可改变的变量、方法或类。对于如privatefinalStringUtilstringUtil;这种情况,final关键字具有以下作用:final的作用不可重新赋值:final修饰的变量在初始化之后,不能被重新赋值。对于privatefinalStringUtilstringUtil;,这意味着一......
  • Java简介及JDK的安装
    一、JAVA语言概述1.java语言的发展Java的开发者为詹姆斯·高斯林。转至sun公司,后参与“绿色计划”,发展了一套语言“Oak”,之后改名为Java(爪蛙)。2.Java语言的平台版本JavaSE标准版本:为普通开发桌面和商务应用程序提供的解决方案;此技术为后两项的基础,可以完成一些桌面的开发。......
  • JAVA初级之集合(List集合)
    目录1、数组和集合的区别2、集合的体系结构3、collection集合3.1collection集合的概述 3.2 Collection集合常用方法 3.3 Collection的增删查实现3.3.1增加3.3.2移除功能3.3.3查找功能4、List集合4.1List集合的概述和特点4.2List集合的常用方法 4.3常......
  • 7月24日JavaSE学习笔记
    序列化版本控制序列化:将内存对象转换成序列(流)的过程反序列化:将对象序列读入程序,转换成对象的方式;反序列化的对象是一个新的对象。serialVersionUID是一个类的序列化版本号privatestaticfinallongserialVersionUID=1L;//版本号如果序列化版本号没有定义,JDK会自动......
  • 7月25日JavaSE学习笔记
    线程的生命周期中,等待是主动的,阻塞是被动的锁对象创建锁对象,锁对象同一时间只允许一个线程进入//创建锁对象Locklock=newReentrantLock(true);//创建可重入锁可重入锁:在嵌套代码块中,锁对象一样就可以直接进入执行公平锁:保证线程获取锁的顺序与线程请求锁的顺序......
  • java包装类型缓存简单探究-Integer为例
    文章目录包装类型缓存自动装箱与valueOf感悟结语包装类型缓存包装类型缓存是什么本文以常用的Integer包装类为例做一个探索,感兴趣可以用类似方法查看其他包装类。我们都知道它会缓存-128到127之间的整数Integer对象。结论大伙都知道。那么我们今天就来探究一下底......
  • Java笔记day10
    一,不同方式创建多个线程并打印(1)定义了一个RunA实现Runnable接口,定义list存储数据,并重写了run方法 ,在run方法里定义循环向list中添加数据a;在main方法中创建a,b两个线程并引用该run方法,输出run对象的list和长度publicstaticvoidmainB(String[]args){RunAru......
  • 基于javaweb+mysql数据库实现的宠物领养|流浪猫狗网站
    《基于javaweb+mysql数据库实现的宠物领养网站》该项目含有源码、文档等资料、配套开发软件、软件安装教程、项目发布教程等使用技术:前端使用技术:JSP,HTML5,CSS3、JavaScript等后台使用技术:Servlet、Jdbc等数据库:Mysql数据库项目功能介绍:本系统为基于jsp+mysql的宠物领养......
  • [Java面向对象]接口
    接口接口中方法抛出异常在Java中,如果接口中的方法声明了抛出异常,那么实现这个接口的类必须处理这些异常。处理方式有两种:要么在实现方法中继续抛出异常,要么捕获并处理异常。假设接口定义如下:publicinterfaceMyInterface{voidmyMethod()throwsIOException;}继......
  • Java SE核心技术——2 Java基础语法
    一、关键字和保留字1.关键字关键字的定义和特点定义:被[java语言]赋予了特殊含义,用作专门用途的字符串。特点:关键字中所有字母都为小写。关键字不能用作变量名,方法名,类名,包名和参数。2.保留字定义:现在java尚未使用,但以后版本可能会作为关键字使用。自己使用时应避免使用。-......