Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前端基础

  • 应用框架

  • 工程能力

  • 应用基础

  • 专业领域

    • 服务端

      • Deno

      • Node.js

        • Node.js 版本切换
        • Node子进程执行ping操作并获取统计信息
        • Node 中的当前目录路径
        • node小bug记录
        • 事件驱动理解
        • 小技巧:Chrome 在线调试 Node
        • 深入浅出Node.js
        • log4js配置详解
          • 前言
          • Appender
            • layout
            • level,maxLevel
          • Category
          • replaceConsole
          • level
          • DEMO
        • node 模块源码解析

        • nodejs文件下载
      • 服务端框架

    • 跨端技术

    • Web IDE

    • 中后台

    • 动效渲染

    • 可视化

    • 埋点监控

    • 多媒体

    • 桌面技术

    • 游戏互动

    • 编辑器

    • 虚拟化与容器化

    • 设计系统

  • 业务场景

  • 大前端
  • 专业领域
  • 服务端
  • Node.js
gahing
2018/04/14
目录
前言
Appender
layout
level,maxLevel
Category
replaceConsole
level
DEMO

log4js配置详解

# 前言

log4js 主要包括以下几项配置

# Appender

负责日志记录的方式:文件、控制台输出、网络发送、邮件发送

常用方式:console,file,dataFile

REF: https://blog.csdn.net/hfty290/article/details/42844085

  1. type:"console"

将日志输出至控制台,这样可以方便开发人员在开发时接看到所有日志信息,在其他环境不建议设置

  1. type:"file"
"filename": "log/access.log",
"maxLogSize ": 31457280,//设置文件大小,当达到最大容量,重命名文件为access.log.1,日志写入新文件access.log
"backups":1,//最多产生的文件备份数,超过会删除
1
2
3
  1. type:"dateFile"
"filename": "log/app-info.log",
"pattern": ".yyyy-MM-dd",//e.g.:app-info.log.2018-04-18
"alwaysIncludePattern":false//如果为true,则每个文件都会按pattern命名,否则最新的文件不会按照pattern命名
"compress":false,是否压缩,之前的文件会被压缩
1
2
3
4
  1. type:"logLevelFilter"

继续配置appender 会继承AppenderName的所有设置并在其上做level的过滤

"appender": "AppenderName",
"level": "error"
1
2

# layout

定义日志记录格式:哪些字段,颜色等

# level,maxLevel

当 let log=log4js.getLogger(name) 得到的 Category 后,有一个 appender 列表, log 记录的方式,如 log.warn/log.error ,会在 appender 列表中继续过滤,取满足 [level,maxLevel] 的 level 的 appender

若未设置,默认 all

# Category

配置日志的类别,可以配置一个Appender数组,表示当前类别日志会通过其Appender数组的每种方式被记录, 可以配置一个level属性,表示传入的日志的level需要在其配置的level及之上才会被记录

Appender 和 Category 的关系:Category <--- 1:n ---> Appender

Category 可以配置一个default,当log4js.getLogger(name)的name不在Category配置中就走default,如果没有配置该default,name也不在Category配置中,会走所有Appender

Category中可以直接配置level 或者log4js.getLogger(name).setLevel(log4js.levels.INFO)这样配置

# replaceConsole

默认false,如果为true,则程序中用console.log输出到控制台的信息,也会输出到日志文件中,且格式按照log4js的格式输出,如果为false,则console.log只会输出在控制台。与type:console的appender正好相反,如果设置了type:console,则会将log4js.log日志输出至控制台。

# level

从低到高:ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF

# DEMO

  {
    "appenders": {
      "console": {
        "type": "console"
      },
      "trace": {
        "type": "file",
        "filename": "log/access.log",
        "maxLogSize ": 31457280
      },
      "http": {
        "type": "logLevelFilter",
        "appender": "trace",
        "level": "trace",
        "maxLevel": "trace"
      },
      "info": {
        "type": "dateFile",
        "filename": "log/app-info.log",
        "pattern": ".yyyy-MM-dd",
        "layout": {
          "type": "pattern",
          "pattern": "[%d{ISO8601}][%5p  %z  %c] %m"
        },
        "compress": true
      },
      "maxInfo": {
        "type": "logLevelFilter",
        "appender": "info",
        "level": "debug",
        "maxLevel": "info"
      },
      "error": {
        "type": "dateFile",
        "filename": "log/app-error.log",
        "pattern": ".yyyy-MM-dd",
        "layout": {
          "type": "pattern",
          "pattern": "[%d{ISO8601}][%5p  %z  %c] %m"
        },
        "compress": true
      },
      "minError": {
        "type": "logLevelFilter",
        "appender": "error",
        "level": "error"
      }
    },
    "replaceConsole": true,
    "pm2":true,
    "categories": {
      "default": {
        "appenders": [
          "console",
          "http",
          "maxInfo",
          "minError"
        ],
        "level": "debug"
      }
    }
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
编辑 (opens new window)
上次更新: 2023/08/23, 09:32:05
深入浅出Node.js
lru-cache

← 深入浅出Node.js lru-cache→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式