1. 自定义日志输出器(Appender)

平台提供了扩展日志输出器的机制,支持自定义并注册日志输出器实现类。

1.1. 定义日志输出器类

日志输出器类只需要实现如下两个方法:

  • constructor(config):构造方法
  • append(loggerName, level, message, ...args):输出日志方法
    • loggerName:使用该日志输出器的日志记录器名称
    • level:日志级别
    • message:日志信息
    • args:可变的选项参数

下面以一个将日志输出到后端的场景为例。

import merge from "lodash.merge";
import {config, template} from "@zhoujianhui/ultra-log";

class BackendAppender {
    config = {
        pattern: config.logging.pattern,
        date: config.logging.date
    }

    constructor(config) {
        this.config = merge(this.config, config)
    }

    append(loggerName, level, message, ...args) {
        const content = template(this.config.pattern, {
            date: (new Date).toLocaleString([], this.config.date),
            level: level.toUpperCase(),
            logger: loggerName,
            msg: message
        })

        // 省略将日志内容输出到后端
    }
}

export default BackendAppender

1.2. 注册日志输出器类

import {logAppenderRegistry} from "@zhoujianhui/ultra-log"
import BackendAppender from "./BackendAppender"

loggerFactory.addAppenderClass(BackendAppender)

1.3. 初始化日志输出器和记录器

import {logAppenderRegistry} from "@zhoujianhui/ultra-log"

loggerFactory.init({
    logging: {
        appenders: [
            {name: "backendAppender", class: "BackendAppender", config: {}}
        ],
        loggers: [
            {"name": "backendLogger", level: "info", appenderRef: "backendAppender"}
        ]
    }
})

1.4. 使用日志记录器

import {logAppenderRegistry} from "@zhoujianhui/ultra-log"

const logger = loggerFactory.getLogger("backendLogger")
logger.info("测试日志")

此时日志就会被保存到后端。

Copyright ©zhoujianhui all right reserved,powered by Gitbook更新时间: 2024-12-06 16:19:31

results matching ""

    No results matching ""