Skip to content

全局配置

绝大多数情况下,logsets是开箱即用的,不需要进行配置。

但是logsets也支持丰富的配置参数,可以自定义输出样式。

默认配置

完整配置如下:

javascript
import createLogger from "logsets"
const log = createLogger({
    indent: "  ",                                           // 缩进
    singleQuotes: false,                                    // 显示单引号 
    template: "[{level}] {datetime} - {message}",           // 模板
    compact:false,                                          // 是否采用紧凑模式输出
    Array:{
        compact : true,                                     // 是否采用紧凑模式输出
        maxItems: 100,                                      // 数组最大长度,超过则显示省略号
        memo    : (value)=> darkGray("(共"+value.length+"项)")  // 当数组数量超过maxItems时,显示共几项的备注
    },
    Object:{
        compact:true,                                       // 是否采用紧凑模式输出
        maxItems:100,                                       // 成员数量,超过则显示省略号
        align:true,                                         // 是否自动对齐
        memo:(value)=> darkGray("(共"+value.length+"项)"),
    },
    Function : {
        style:"lightCyan",
        format:value=>value.name ? `[Function ${value.name}]` : "()=>{...}"
    },
    AsyncFunction: {
        style:"lightCyan",
        format:value=>value.name ? `[AsyncFunction ${value.name}]` : "async ()=>{...}"
    },
    Error    : {
        style:"red",
        format:e=>`${e.name.firstUpper()}('${e.message}')`
    },
    Null     : "darkGray",
    Undefined: "darkGray",
    Boolean  : "cyan",
    Number   : "yellow",
    String   : "green", 
    Class    : {
        style:"lightCyan",
        format:value=>`[Class ${value.name}]`
    },
    Instance : {
        style:"lightBlue",
        format:value=>`<Class(${value.constructor.name})>`
    },
    Date     : {
        style:"lightBlue",
        format:(value)=>`${value.getFullYear()}-${value.getMonth()+1}-${value.getDate()} ${value.getHours()}:${value.getMinutes()}:${value.getSeconds()}`
    },
    Symbol   : "blue", 
    RegExp   : {
        style:"magenta",
        format:(value)=>`${value.toString()}`
    },
    levels   :{
        align: true,                                        // 是否自动对齐消息
        maxLineChars  : 90,                                 // 每行最大字符数 
        memo     : "darkGray",
        debug    : "lightGray",
        info     : "dim",
        warn     : "yellow",
        error    : "red",
        fatal    : "red"
    } 
})

以上是默认的配置,一般情况不需要进行修改覆盖。

数据类型显示样式

各种数据类型均可以配置显示样式,支持配置ArrayObjectFunctionAsyncFunctionErrorDateNullUndefunedBooleanNumberStringClassInstanceSymbolRegexp

配置数据类型的样式可以按如下方式:

javascript
// 1. 简单指定类型的样式名称
{
    [数据类型名称]:"<样式名称>,<样式名称>,...,<样式名称>"
}
// 2. 指定类型的样式名称,同时指一个格式化函数来用内容进行格式化
{
    [数据类型名称]:{
    	style:"<样式名称>,<样式名称>,...,<样式名称>",
        format:(value)=>{...<返回格式化后的内容>...}
    }
}

颜色样式

显示样式名称支持设置一个或多个,同时使用多个时采用,分开。

样式名称用来指定以何种前景颜色、背景颜色或修饰样式,支持如下值:

  • 普通前景色:redgreenyellowbluemagentacyanwhitedarkGrayblack
  • 加亮前景色:lightRedlightGreenlightYellowlightBluelightMagenta,lightCyan ,lightGray
  • 普通背景色:bgRedbgGreenbgYellowbgBluebgMagentabgCyanbgWhitebgDarkGraybgBlack
  • 加亮背景色:bgLightRedbgLightGreenbgLightYellowbgLightBluebgLightMagentabgLightCyanbgLightGray
  • 修饰样式:brightdimitalicunderlineinverse

所有可以定制显示颜色样式的参数均支持TypeScript提示

举例如下:

javascript
logsets.config({
    Boolean:"bgLightRed,white"
})

代表对Boolean类型数据采用亮红色背景白色文本方式显示。

: 样式可能受不平操作系统平台差异,部分样式不支持。

文本样式

在上述所有功能中均会使用一个style参数来配置自定义的显示样式。

style参数是一个使用,分割的字符串,可以同时应用1-N个字符串色彩和样式。比如style="bgLightRed,white"代表采用亮红色背景白色文本方式显示。