博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AI考拉技术分享-Node基础架构专题(二)
阅读量:6162 次
发布时间:2019-06-21

本文共 4053 字,大约阅读时间需要 13 分钟。

klg-logger

前言

今天给大家介绍 logger日志工具的使用,用dev的小哥哥的话说:log 工具,基于 tracer,简单,可以显示 log 的位置。

详情请看以下配置方法,有问题欢迎在评论区提出!

配置

3.0 版本开始,将不对 tracer 做任何封装,直接使用 Tracer

详细用法见 tracer 文档

基本用法

简单版本

默认版本是把 log 输出到 console

jsimport { Logger } from 'klg-logger'const logger = Logger({  level: config.get('log.level'),  dateformat: 'yyyy-mm-dd HH:MM:ss.L',  inspectOpt: {    showHidden: false, // if true then the object's non-enumerable properties will be shown too. Defaults to false    depth: 5 // tells inspect how many times to recurse while formatting the object. This is useful for inspecting large complicated objects. Defaults to 2. To make it recurse indefinitely pass null.  }})logger.info('hello world')logger.debug('hello %s', 'world')logger.error('hello %s', 'error')export {logger}  复制代码

配置项的详细解释:

interface LoggerConfig {    /**     * Output format (Using `tinytim` templating)     *     * Defaults to: `"{
{timestamp}} <{
{title}}> {
{file}}:{
{line}} ({
{method}}) {
{message}}"` * * Possible values: * - timestamp: current time * - title: method name, default is 'log', 'trace', 'debug', 'info', 'warn', 'error','fatal' * - level: method level, default is 'log':0, 'trace':1, 'debug':2, 'info':3, 'warn':4, 'error':5, 'fatal':6 * - message: printf message, support %s string, %d number, %j JSON and auto inspect * - file: file name * - line: line number * - pos: position * - path: file's path * - method: method name of caller * - stack: call stack message */ format?: string | [string, LevelOption
]; /** * Datetime format (Using `Date Format`) */ dateformat?: string; filters?: FilterFunction[] | LevelOption
| Array
>; /** * Output the log, if level of log larger than or equal to `level`. */ level?: string | number; methods?: string[]; /** * Get the specified index of stack as file information. It is useful for development package. */ stackIndex?: number; inspectOpt?: { /** * If true then the object's non-enumerable properties will be shown too. Defaults to false. */ showHidden: boolean, /** * Tells inspect how many times to recurse while formatting the object. * This is useful for inspecting large complicated objects. * Defaults to 2. To make it recurse indefinitely pass null. */ depth: number }; /** * Pre-process the log object. */ preprocess?(data: LogOutput): void; /** * Transport function (e.g. console.log) */ transport?: TransportFunction | TransportFunction[];}复制代码

自定义 transport

如果你需要把 log 输出到文件或者发送其他地方,可以自定义 transport function

import { Logger } from 'klg-logger'const logger = new Logger({  level: 'log',  transport: function (data: Tracer.LogOutput) {    // 写文件    fs.write(data)    // 发送其他地址    tcp.send(data)    assert(data)    assert(data.level === 0)  }})logger.log('hello world')复制代码

每日分割日志

如果你需要把 log 输出到文件或者发送其他地方,可以自定义 transport function

import { LoggerDaily } from 'klg-logger'const logger = LoggerDaily({  root: '/data/app/log',  maxLogFiles: 10,  allLogsFileName : true,  level: 'log'})logger.log('hello world')logger.err = logger.errorlogger.err('hello world')复制代码

配置字段:

interface DailyFileConfig {    /**     * All daily log file's dir, default to: `'.'`.     */    root?: string;    /**     * Log file path format.     *     * Default to: `'{
{root}}/{
{prefix}}.{
{date}}.log'` * * Possible values: * - `root`: all daily log file's dir, default to: `'.'`. * - `prefix`: it equal to `allLogsFileName`, if `allLogsFileName` is provided; else it will be the method name. * - `date`: today's date. */ logPathFormat?: string; /** * Datetime format (Using `Date Format`) */ splitFormat?: string; /** * If `allLogsFileName` is provided then all level logs will be move to one daily log file. */ allLogsFileName?: boolean; maxLogFiles?: number;}复制代码

著作权归本文作者所有,未经授权,请勿转载,谢谢。

你可能感兴趣的文章
使用addChildViewController手动控制UIViewController的切换
查看>>
Android Fragment应用实战
查看>>
SQL Server查询死锁并KILL
查看>>
内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 [问题点数:20分,结帖人wenyang2004]...
查看>>
委托到Lambda的进化: ()=> {} 这个lambda表达式就是一个无参数的委托及具体方法的组合体。...
查看>>
apache 伪静态 .htaccess
查看>>
unity3d 截屏
查看>>
ASP.NET MVC学习之控制器篇
查看>>
MongoDB ServerStatus返回信息
查看>>
分析jQuery源码时记录的一点感悟
查看>>
程序局部性原理感悟
查看>>
UIView 动画进阶
查看>>
Spring如何处理线程并发
查看>>
linux常用命令(用户篇)
查看>>
获取组件的方式(方法)
查看>>
win2008 server_R2 自动关机 解决
查看>>
我的友情链接
查看>>
在C#调用C++的DLL简析(二)—— 生成托管dll
查看>>
Linux macos 常用终端操作
查看>>
企业网络的管理思路
查看>>