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 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Log4j2.xml配置文件 -> 正文阅读

[JavaScript知识库]Log4j2.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!--
  配置参数
 	%d{HH:mm:ss.SSS} 表示输出到毫秒的时间
 	%t 输出当前线程名称
  	%-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
  	%logger 输出logger名称,因为Root Logger没有名称,所以没有输出
 	%msg 日志文本
  	%n 换行
  其他常用的占位符有:
  	%F 输出所在的类文件名,如Log4j2Test.java
  	%L 输出行号
  	%M 输出所在方法名
  	%l 输出语句所在的行数, 包括类名、方法名、文件名、行数
 -->

<!-- configure.status 为设置日志输出级别,级别如下:OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE、ALL -->
<!-- configure.monitorInterval 监控间隔 指log4j2每隔3600秒(一小时),自动监控该配置文件是否有变化,如果变化,则自动根据文件内容重新配置 -->
<configuration status="OFF" monitorInterval="3600">

    <properties>
        <!-- 项目根目录创建logs文件夹 -->
        <property name="LOG_HOME">logs</property>
        <property name="LOG_BACK_HOME">${LOG_HOME}/backup</property>
        <property name="ERROR_FILE_NAME">error</property>
        <property name="WARN_FILE_NAME">warn</property>
        <property name="INFO_FILE_NAME">info</property>
        <property name="DEBUG_FILE_NAME">debug</property>
    </properties>

    <!--先定义所有的appender -->
    <appenders>
        <!--这个输出控制台的配置 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!--这个都知道是输出日志的格式 -->
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <!-- 配置日志输出文件名字 追加读写 -->
        <!-- Error console log -->
        <RollingFile name="ErrLog" fileName="${LOG_HOME}/${ERROR_FILE_NAME}.log"
                     filePattern="${LOG_BACK_HOME}/$${date:yyyy-MM-dd}/${ERROR_FILE_NAME}.%d{yyyy-MM-dd}.log"
                     append="true">
            <!-- 输出格式 -->
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%t]%logger{36} - %msg%xEx%n" />
            <!-- 设置策略 -->
            <Policies>
                <!-- 基于时间的触发策略。该策略主要是完成周期性的log文件封存工作。有两个参数: interval,integer型,指定两次封存动作之间的时间间隔。单位:以日志的命名精度来确定单位,
                    比如yyyy-MM-dd-HH 单位为小时,yyyy-MM-dd-HH-mm 单位为分钟 modulate,boolean型,说明是否对封存时间进行调制。若modulate=true,
                    则封存时间将以0点为边界进行偏移计算。比如,modulate=true,interval=4hours, 那么假设上次封存日志的时间为03:00,则下次封存日志的时间为04:00,
                    之后的封存时间依次为08:00,12:00,16:00 -->
                <TimeBasedTriggeringPolicy interval="1"
                                           modulate="true" />
            </Policies>
            <!-- 配置过滤器,过滤掉不需要的日志 -->
            <Filters>
                <!-- ThresholdFilter.level: 输出级别 例:level=”info”,日志级别为info或者以上(匹配的界别)-->
                <!-- ThresholdFilter.onMatch: DENY/ACCEPT 是否接受匹配该级别以上-->
                <!-- ThresholdFilter.onMismatch: DENY/NEUTRAL 是否接受匹配该级别以下 NEUTRAL表示由下一个filter处理-->
                <ThresholdFilter level="error"
                                 onMatch="ACCEPT"
                                 onMismatch="DENY" />
            </Filters>
        </RollingFile>

        <!-- Warn console log -->
        <RollingFile name="WarnLog" fileName="${LOG_HOME}/${WARN_FILE_NAME}.log"
                     filePattern="${LOG_BACK_HOME}/$${date:yyyy-MM-dd}/${WARN_FILE_NAME}.%d{yyyy-MM-dd}.log"
                     append="true">
            <!-- 输出格式 -->
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%t]%logger{36} - %msg%xEx%n" />
            <!-- 设置策略 -->
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"
                                           modulate="true" />
            </Policies>
            <Filters>
                <ThresholdFilter level="error"
                                 onMatch="DENY"
                                 onMismatch="NEUTRAL" />
                <ThresholdFilter level="warn"
                                 onMatch="ACCEPT"
                                 onMismatch="DENY" />
            </Filters>
        </RollingFile>

        <!-- Info console log -->
        <RollingFile name="InfoLog" fileName="${LOG_HOME}/${INFO_FILE_NAME}.log"
                     filePattern="${LOG_BACK_HOME}/$${date:yyyy-MM-dd}/${INFO_FILE_NAME}.%d{yyyy-MM-dd}.log"
                     append="true">
            <!-- 输出格式 -->
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%t]%logger{36} - %msg%xEx%n" />
            <!-- 设置策略 -->
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"
                                           modulate="true" />
            </Policies>
            <Filters>
                <ThresholdFilter level="warn"
                                 onMatch="DENY"
                                 onMismatch="NEUTRAL" />
                <ThresholdFilter level="info"
                                 onMatch="ACCEPT"
                                 onMismatch="DENY" />
            </Filters>
        </RollingFile>

        <!-- Debug console log -->
        <RollingFile name="DebugLog" fileName="${LOG_HOME}/${DEBUG_FILE_NAME}.log"
                     filePattern="${LOG_BACK_HOME}/$${date:yyyy-MM-dd}/${DEBUG_FILE_NAME}.%d{yyyy-MM-dd}.log"
                     append="true">
            <!-- 输出格式 -->
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%t]%logger{36} - %msg%xEx%n" />
            <!-- 设置策略 -->
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"
                                           modulate="true" />
            </Policies>
            <Filters>
                <ThresholdFilter level="info"
                                 onMatch="DENY"
                                 onMismatch="NEUTRAL" />
                <ThresholdFilter level="debug"
                                 onMatch="ACCEPT"
                                 onMismatch="DENY" />
            </Filters>
        </RollingFile>
    </appenders>

    <!-- 注册日志输出对象  -->
    <loggers>
        <!-- 默认显示方式 -->
        <!-- root节点用来指定项目的根日志 level=”info“ 表示低于info级别的日志不输出 -->
        <!-- 如果突然想去掉一些低级别的日志,可以直接将标签 root 的属性 level 中的日志级别调高,而不需要改动其它的代码 -->
        <root level="info">
            <appender-ref ref="Console"/>
            <appender-ref ref="ErrLog" />
            <appender-ref ref="WarnLog" />
            <appender-ref ref="InfoLog" />
            <appender-ref ref="DebugLog" />
        </root>
    </loggers>
</configuration>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:22:00  更:2022-02-26 11:26:13 
 
开发: 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年11日历 -2024/11/24 10:46:45-

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