首页 > 编程语言 >java日志常用配置

java日志常用配置

时间:2024-11-19 10:42:08浏览次数:1  
标签:%- 常用 java LOG MM dd yyyy ss 日志

<!-- pom.xml -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
<?xml version="1.0" encoding="UTF-8"?>
<!-- logback.xml -->
<configuration>
    <!-- 自定义日志输出路径-->
    <property name="PATH" value="./logs/"/>
    <!--自定义日志存留天数-->
    <property name="LOG_MAX_HISTORY" value="5"/>
    <!--自定义单个日志文件的大小,超过将生成新文件-->
    <property name="LOG_MAX_FILE_SIZE" value="20MB"/>
    <!--自定义日志总大小,超过将删除最旧存档-->
    <property name="LOG_TOTAL_SIZE_CAP" value="1GB"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
        </encoder>
        <!-- 此日志文件只记录INFO以上级别的 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!--保存多少天的日志-->
            <maxHistory>${LOG_MAX_HISTORY}</maxHistory>
            <!--自定义日志总大小-->
            <totalSizeCap>${LOG_TOTAL_SIZE_CAP}</totalSizeCap>
            <!--单个文件大小上限-->
            <maxFileSize>${LOG_MAX_FILE_SIZE}</maxFileSize>
            <!--在只有设置为true并且 maxHistory 不为零才能起效。-->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <!--输出格式-->
        <encoder>
            <!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-8X{UUID}) %msg%n</pattern>-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
        <!-- 此日志文件只记录DEBUG以上级别的 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!--单个文件大小上限-->
            <maxFileSize>${LOG_MAX_FILE_SIZE}</maxFileSize>
            <!--保存多少天的日志-->
            <maxHistory>${LOG_MAX_HISTORY}</maxHistory>
            <!--自定义日志总大小-->
            <totalSizeCap>${LOG_TOTAL_SIZE_CAP}</totalSizeCap>
            <!--在只有设置为true并且 maxHistory 不为零才能起效。-->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <!--输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
        <!-- 此日志文件只记录ERROR级别 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <root level="TRACE">
        <appender-ref ref="ERROR_FILE"/>
        <appender-ref ref="DEBUG_FILE"/>
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

标签:%-,常用,java,LOG,MM,dd,yyyy,ss,日志
From: https://www.cnblogs.com/chenzechao/p/18554395

相关文章

  • Python实现文件夹上传到Linux服务器(带日志功能)
    功能概述实现一个FileUploader类,用于将本地文件夹及其子文件上传到Linux服务器的指定目录,并支持:冲突处理策略:覆盖:直接覆盖远程文件。跳过:跳过已存在的远程文件。重命名:避免冲突,为文件生成唯一名称。日志功能:记录上传成功的文件(upload_success.log)。记录上传失败......
  • JAVA WEB 实现文件夹上传(保留目录结构)分享
    需求:大文件上传,批量上传,断点续传,文件夹上传,大文件下载,批量下载,断点下载,文件夹下载文件夹:上传下载需要支持层级结构,采用非压缩方式文件大小:100G前端:vue2,vue3,vue-cli,jquery,html,webuploader后端:JSP,springbootweb服务:tomcat数据库:mysql,oracle,达梦,国产化数据库服务......
  • Java运行环境的安装与配置 idea的安装
    安装Java的运行环境后,对于开发人员来说,只需要编写一次Java源码,就可以在任何支持Java的平台上运行,就不需要关心平台的差异和编译问题,从而大大的提高了开发效率。、一配置Java开发环境步骤1.下载JDKhttps://www.oracle.com/java/technologies/downloads/在官方网站......
  • javax.xml.ws.EndPoint报错
    可能的原因,检查下jdk版本,在jdk8>以上版本中,已经弃用该对象。 先安装jdk21,然后再安装jdk1.8,项目中有用到该对象,提示无法正常加载。(前提确保所有jar都正常引入)排查步骤,看下idea开发工具中jdk的配置版本, javax.xml.ws.EndPoint在jdk1.8版本中存在,高版本中不存在。......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要为了方便用户快速定位自己感兴趣的国内热门旅游景点信息,国内热门景点推荐系统应运而生。本系统的前端界面主要实现页面的美观和动态效果使之符合广大群众的审美观,后台主要使用的技术主要有Java编程语言,SSM框架,MySQL数据库的旅游推荐系统解决了传统旅游推荐方式中数据......
  • 计算机毕业设计原创定制(免费送源码)Java+B/S+SSM+Web前端开发技术+IDEA+MySQL+Navicat
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对有风小院等问题,对有风小院信息管理进行研究分析,然后开发设计出有风小院系统以解决问题。有......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
     摘 要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认知向理性认知提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对医疗门诊管理......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
     摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园跳蚤市场管理系统被用户普遍使用,为方便用户能够可以随时进行校园跳蚤市场管理系统的数据信息管理,特开发了基于spri......
  • 福气满满-冲刺日志(第一天)
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzu/SE2024作业要求https://edu.cnblogs.com/campus/fzu/SE2024/homework/13305团队名称福气满满团队成员学号-名字052203132童潇剑,102201226陈潇健,102201235曾炜坤,102201234洪庆杨,102201224陈博涵,1822003......
  • Java中的动态代理是什么?
    Java的动态代理是一种在运行时动态创建代理对象的机制,主要用于在不修改原始类的情况下对方法调用进行拦截和增强。Java动态代理主要分为两种类型:基于接口的代理(JDK动态代理):这种类型的代理要求目标对象必须实现至少一个接口。Java动态代理会创建一个实现了相同接口的代理类,然......