📖
blog
  • README
  • JavaScript
    • 元素的宽高位置信息梳理
    • dom-align 源码浅析
    • Event Loop
    • 函数实参为对象时的陷阱
    • export 与 utils 方法书写规范
    • 手写 Promise 及相关代码理解
    • call,apply,bind 等函数的模拟实现
    • JavaScript继承
    • JavaScript 数据类型与类型判断
    • for..of 和 for..in 的区别
    • 写给自己看的 next 函数
    • JS 可选链与双问号
    • mouseenter 与 mouseover 事件的区别
    • Immutable相关知识
  • CSS
    • 不简单的 z-index
    • 两列布局,三列布局
    • CSS 居中方案整理
    • CSS 像素,设备像素,2倍图梳理
    • iconfont 的使用
  • Node JS
    • 实现简易的 express
  • React 核心知识点整理
    • 高阶组件
    • React 事件处理
    • React Hooks
    • React Context
  • React 状态管理
    • Redux 基础概念
    • Redux 中间件和异步操作
    • Redux Saga
    • Redux 只能有一个 store 对象嘛
  • React 开发实践
    • Ant Design Menu 组件的使用与深入
    • 讲讲吸顶效果与 react sticky
    • 基于 express,搭建 react 的开发环境
    • 通过 antd input 组件分析受控与非受控组件
    • DebounceClick 组件
    • react component Align 组件分析
    • React Portal 之事件冒泡
    • React Transition Group 源码浅析
    • React.cloneElement 父组件向子组件注入 props
    • 一次 Align 组件的问题记录
    • 如何知道子组件的类型
    • React Router 源码简单分析
    • React Redux 源码简单分析
  • Vue.js
    • Vue.js 概览
    • scoped 样式中的 deep
  • TypeScript 语法
    • 基础类型
    • 变量声明
    • 接口
    • 类
    • 函数
    • 泛型
    • 枚举
    • 类型推论
    • 类型兼容性
    • 高级类型
    • Symbol
    • 迭代器和生成器
    • 模块
    • 命名空间
    • JSX
  • 玩转 webpack
    • 第一章: webpack 与构建发展简史
    • 第二章:webpack基础用法
    • 第三章:webpack进阶用法
    • 第四章:编写可维护的 webpack 构建配置
    • 第五章:webpack构建速度和体积优化策略
    • 第六章:通过源代码掌握webpack打包原理
    • 第七章:编写Loader和插件
  • webpack 实践
    • 如何配置 output.library
  • 测试
    • 初识代码测试
    • Jest 中 如何测试 setTimeout
    • Jest Enzyme React 测试实践记录
  • WEB 开发,过往工作沉淀
    • Web安全(DVWA)
    • 内存泄露与事件移除的必要性
    • url to pdf api 与 服务部署踩坑记录
    • 前端调试指南
    • Markdown 转 email
    • github travis ci 自动部署
    • 浏览器缓存知识梳理
    • WEB 系统登录相关知识梳理
    • 将-Axios-请求参数和返回值进行格式化
    • source-map与源码调试
    • HTTPS
    • 使用 rollup 打造自己的 npm 包 (全流程)
    • father-build 是如何工作的
  • 书籍
    • 图解 HTTP 协议
    • 编写可维护的 JavaScript
    • 鸟哥的 Linux 私房菜
    • JavaScript Promise迷你书
  • Linux
    • vimtutor
    • CURL 使用指南
  • Nginx
    • 一次 nginx 分享
  • Git
    • Git Commit Message 须知
    • .gitignore 模板
    • git tag标签
  • 摄影
    • 摄影基础知识
    • 手机摄影从小白到大师
  • 翻译
    • log4js
    • log4js-node
    • 介绍GitLab上的CI/CD
    • 为GitLab Pages创建并调整GitLab CI/CD
    • 关于 rel=noopener
    • AngularJS 团队 Git 提交信息约定
    • JSON Schema
  • Lifehack
    • 20 个 Google 搜索 Tips 来高效使用 Google
    • 37 个高级 Google 搜索 Tips
Powered by GitBook
On this page
  • 1. API
  • 1.1 configuration - log4js.configure(object || string)
  • 1.2 Configuration Object
  • Loggers- log4js.getLogger([category])
  • 2. 示例代码

Was this helpful?

  1. 翻译

log4js-node

Previouslog4jsNext介绍GitLab上的CI/CD

Last updated 4 years ago

Was this helpful?

1. API

1.1 configuration - log4js.configure(object || string)

有一个配置 log4js 的入口点,字符串的参数会被当做一个文件用来加载配置。配置文件应该是JSON格式的,并且包含了一个配置对象,你也可以直接给configure传递一个配置对象。

配置应该在你的应用程序第一次加载 log4js 之后尽快出现。如果你不调用 configure, log4js 会使用 LOG4JS_CONFIG(如果有的话)作为默认的配置。默认的配置定义了一个输出源,该输出源会将有颜色的排版打印到标准输出中,但是定义的默认日志等级是 OFF, 这意味着没有日志将会被输出。

如果你在使用集群,在worker进程和master进程中都调用了 configure,worker进程会为你的(日志)分类,以及任何你定义的自定义的等级选择适当的日志等级,输出源只在master进程中被定义,所以没有多个进程尝试向一个输出源写入的危险。不像之前的版本,现在在集群中使用 log4js 无需特殊的配置。

配置对象至少需要定义一个输出源,以及一个默认的分类,如果配置文件不合法 Log4js 将会抛出错误。

configure 方法必须返回一个 log4js 的配置对象。

1.2 Configuration Object

属性:

  • levels (可选的,对象) - 用来定义日志等级,或者是重新定义用来覆盖已有的。这是一个 map 对象,使用 level 的名字作为 key(字符串,不区分大小写),使用 object 作为值。这个 object 应该有两个属性,等级的值(整数),以及颜色。日志等级用于表示日志消息的重要性,使用整数是为了能够排序。如果在配置文件中不特地指定,就会使用默认值。 ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF OFF 等级是用来关闭日志的,而不是实际的日志级别。比如,你永远不会 logger.off('some log message'). 除了默认的等级之外,还使用此处定义的等级,使用整数值用来决定于默认等级的关系。如果你定义了一个和默认等级相同名字的等级,在 config 中的整数值优先级更高。等级的名字必须以字母开头,并且只能有字母,数字,下划线。

  • appender(对象) - 输出源名字到输出源对象的映射。输出源必须要有一个 type 的属性,其它属性取决于输出源的类型。

  • categories(对象) - 目录名字到目录对象的映射,你必须定义 default 这个目录,当日志事件不匹配任何一个目录时,就会使用到 default 目录。目录的定义有两个属性:

    • appenders(字符串数组)- 这个目录会使用到的输出源数组,一个目录至少需要一个输出源

    • level(字符串,大小写不敏感)-定义这个目录会发送给输出源的最小日志等级。如果设置成了error, 那么输出源只会接受 error,fatal,mark,其它的info,warn,debug,或者 trace 都会被忽略。

    • enableCallStack(布尔值,默认为false)- 将它设置为 true,那么这个目录的日志事件将会使用调用栈来生成行号和文件名。查看学习如何在你的输出源中输出这些值

  • pm2(布尔值,可选)- 如果你在使用 pm2 的话,将它设置为true,否则的话日志将不会工作(你也需要安装 pm2-intercom 作为 pm2 的模块 pm2 install pm2-intercom)。

...

Loggers- log4js.getLogger([category])

略

2. 示例代码

const log4js = require('./lib/log4js');
log4js.configure({
  appenders: {       // 输出源
    cheese: {
      type: 'file',      // 输出类型 [ console | stdout | ... ]
      filename: 'cheese.log'     // 输出到该文件
    }
  },
  categories: {
    default: {
      appenders: ['cheese'],
      level: 'error'
    }
  }
});

const logger = log4js.getLogger('cheese');
// 指定 cheese 目录,没有该目录,于是转向 default 目录。
// default目录指定最小输出的等级是Level,因此只有 error 和 fatal 会输出
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Comté.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
英文原版
排版模式