在开发nodejs终端应用程序时,在终端输入带色彩的文本,反对以下个性:

  • 反对按不同数据类型以不同的色彩显示,并且能够配置
  • 反对按DEBUGINFOWARN ERROR FATAL五个级别输入日志
  • 反对输入带色彩的模板字符串
  • 反对主动格式化显示{}[]类型
  • 反对弱小的表格输入
    • 反对输入工作列表、进度条、横幅和树等扩大
  • 正确处理中文与英文混排时的对齐问题

开源地址:https://gitee.com/zhangfisher/logsets.git

装置

npm install logsetsyarn add logsetspnpm add logsets

指南

模板字符串输入

对模板字符串进行插值后输入着色后的字符串。

import createLogger from "logsets"const logger = createLogger({...})logger.log("<模板字符串>",<变量1>,<变量1>,...,{end:"\n",append:" "})logger.log("<模板字符串>",<变量1>,<变量1>,...)logger.log("<模板字符串>",{<变量1>:<值>,<变量1>:<值>},)logger.log("<模板字符串>",{<变量1>:<值>,<变量1>:<值>},{end:"\n",append:" "})

示例如下:

import createLogger from "logsets"const logger = createLogger({...})// 命名插值变量logger.log("{a}+{b}={c}",{a:1,b:1,c:2})// 地位插值变量logger.log("My name is {}","tom")logger.log("{a}+{b}={c}",1,1,2)

输入成果如下:

默认状况下,每次执行log办法实现后均会导致换行输入。log办法还反对配置输入参数:

for(let i =0 ;  i<=100; i++){  logger.log("正在下载:{}",i,{end:"\r"})          // 每行输入时最初打印\r回车符,回到行头,从而能够实现下载进度的更新。}logger.log()   // 换行

配置参数
log的参数大于=2个并且最初一个参数是{}时,将最初一个参数视为是输入配置参数。

{    end:"\n",          // 行完结字符,默认是换行会导致打印下一行,如\r则不会换行而只是回到行首    append:" "         // 每个输入参数主动追加的字符,默认是一个空格}

按数据类型输入

提供print办法,用来间断输入多个通过着色的参数。

    print(arg1,arg2,arg3,.....)    print(arg1,arg2,arg3,.....,{end:"\n",append:" "}) // 减少可选的输入参数

输入配置参数:

log办法.

示例

import createLogger from "logsets"const log = createLogger({...})logger.print("String",true,100,()=>{},[1,2,3])logger.print(null,undefined)logger.print(/^colored$/g)logger.print(new Error("Value Error"))logger.print(new Date())  logger.print(class A{})logger.print(new (class X{})())logger.print({name:"tom",age:100,admin:true,posts:["a","b"],values:[1,2,3]},()=>"hello")

输入成果如下:

格式化输入对象

提供format办法,用来带缩进格局和着色过的对象

  • 根本用法
import createLogger from "logsets"const logger = createLogger({...})logger.format({    name:"tom",    age:11,    admin:true,    posts:["经理","主任"],    addtrss:{        company:"中华人民共和国北京市二环路",        family:"福建省泉州市惠安路1512号"    }})

输入成果如下:

  • 优化数组和对象输入

对数组或对象成员数量当超过指定值时,显示省略号并备注总数量。

import createLogger from "logsets"const logger = createLogger({...})logger.format({    values:new Array(10).fill(0).map((v,i)=>i+1),    users:{        tom:{name:"tom",age:21,sex:true},        jack:{name:"jack",age:21,sex:false},         jack1:{name:"jack",age:21,sex:false},         jack2:{name:"jack",age:21,sex:false},         jack3:{name:"jack",age:21,sex:false},         jack4:{name:"jack",age:21,sex:false},         jack5:{name:"jack",age:21,sex:false},         jack6:{name:"jack",age:21,sex:false},         jack7:{name:"jack",age:21,sex:false},         jack8:{name:"jack",age:21,sex:false},         jack9:{name:"jack",age:21,sex:false},         jack10:{name:"jack",age:21,sex:false},         jack11:{name:"jack",age:21,sex:false},         jack12:{name:"jack",age:21,sex:false},     }},{Array:{maxItems:5},Object:{maxItems:5}})

maxItems参数用来指定只显示多少项,超出显示省略号并备注总数量。

输入成果如下:


能够配置紧凑模式输入。

import createLogger from "logsets"const logger = createLogger({...})logger.format({    values:new Array(10).fill(0).map((v,i)=>i+1),    users:{        tom:{name:"tom",age:21,sex:true},        ...,        jack12:{name:"jack",age:21,sex:false},     }},{Array:{maxItems:5,compact:true},Object:{maxItems:5,compact:true}})

compact参数用来批示采纳紧凑模式输入

输入成果如下:

显示宰割条

logger.separator(width)能够输入一条程度分割线, width参数是可选的,默认是60

输入日志级别

按指定级别输入日志,并会对插值变量进行着色。

logger.debug("<模块字符串>",[地位插值变量列表] || {插值变量列表},"备注信息")logger.info("<模块字符串>",[地位插值变量列表] || {插值变量列表},"备注信息")logger.warn("<模块字符串>",[地位插值变量列表] || {插值变量列表},"备注信息")logger.error("<模块字符串>",[地位插值变量列表] || {插值变量列表},"备注信息")logger.fatal("<模块字符串>",[地位插值变量列表] || {插值变量列表},"备注信息")

示例如下:

import createLogger from "logsets"const log = createLogger({...})logger.debug("正在执行程序{},还须要{}秒...",["logs",9])logger.info("正在执行程序{app},还须要{time}秒...",{app:"logs",time:9})logger.warn("正在执行程序{app},还须要{time}秒...",{app:"logs",time:9},"Line:123")logger.warn("程序执行可能出错\n变量没有定义")logger.error("程序执行可能出错\n变量没有定义")logger.fatal("正在执行程序{a} + {b} , {sex} {name}...",{a:1,b:1,sex:true,name:"voerka"})

输入成果如下:


第二个参数也能够是一个返回[]{}插值变量列表的函数.

logger.warn("My name is {name}, age is {age}",()=> ({name:"Voerka",age:1}))

输入款式能够通过template参数配置模块字符串。

logger.config({    template:"[{level}] {datetime} - {message}"})

template反对以下插值变量:

  • level:日志级别
  • datetime:以后日期工夫
  • date:以后日期
  • time:以后工夫
  • message:文本信息

表格输入

logsets反对额定引入table插件用来输入表格

根本用法

import createLogger from "logsets"import TablePlugin from "logsets/plugins/table"const log = createLogger({...})logger.use(TablePlugin)const table = logger.table({           colorize:1,              // 是否须要色彩化 0-禁用着色,1-简略着色 2-对表单元外面的对象和数组进行着色,须要额定的计算    grid:2,                          // 表格线款式,0=不显示表格线,1=只显示垂直表格线,2=显示残缺表格线    maxColWidth:32,                  // 最大列宽,超过会显示省略号    colPadding:" ",                  // 列额定的空格    header:{        style:"bright"               // 表头色彩款式,默认高亮     },                                        footer:{        style:"darkGray",            // 表尾色彩款式                         merge:true                   // 是否合并行        align:"right",               // 当合并时对齐形式    },    summary:{                        // 默认汇总行配置        style:"yellow,bright",        // 汇总色彩款式        align:"right",                // 汇总对齐形式    },   })// 输出表头,只反对一个表头table.addHeader("序号","文件名","大小","下载进度","实现","<备注")// 输入行,一个参数对应一列table.addRow(1,"readme.md",58713,100,true,"自述文件")table.addRow(2,"index.js",1222,100,true,"源代码文件")table.addRow(3,"consts.js",45981,100,true,"常量定义\n蕴含默认的配置文件")table.addRow(4,"table.plugin.js",434,100,true,"表格插件\n可选,用来输入表格")table.addRow(5,"rollup.config.js",123,100,true,"构建配置文件")// 输入汇总行table.addSummary(["已下载",5,"个文件\n累计耗时",56,"秒"],{align:"right"})table.addRow(6,"colorize.js",6542,60,false,"实现对变量或对象进行着色")table.addRow(7,"stringify.js",5546,34,false,"格式化JSON") table.addRow(8,"utils.js",6456,66,false,"一个工具函数") // 输出表尾table.addFooter(["共",8,"个文件"])// 渲染输入table.render()

输入成果如下:

管制表格线款式

grid=1时,输入成果如下:

grid=2时,输入成果如下:

单元格着色

table.addRow进行减少行时,会依据logsets 全局配置按不同的数据类型显示不同的色彩。

单元格里显示着色对象

默认状况下,在单元格外面显示{...}[...]时会将之转化为字符串进行显示,而不是像format办法一样进行格式化关色后输入。须要额定配置colorize=2才会进行着色输入。

table = logger.table({     colorize:2,    })

colorize参数用来管制是否对单元格内容进行着色。

  • 0 : 禁用着色输入
  • 1 : 对简略数据类型进行着色,默认值
  • 2 :对表单元外面的对象和数组进行着色,须要额定的计算

API

table实例具备以下办法:

addHeader

减少表头,一个表格只能指定一个表头,并且表头不反对多行题目。

addHeader("列题目","列题目",......,"列题目")

列题目默认居中显示,指定列题目时能够通过第一个字符来指定该列的显示对齐形式。如:

addHeader("序号","名称",">地址")          // 地址列右对齐addHeader("序号","名称","<地址")          // 地址列左对齐

addRow

表格反对增加任意多的一般表行。

addRow(<单元格内容>,<单元格内容>,...,<单元格内容>)

个别状况下,单元格的数量应该与addHeader中列数量统一。如果addRow的参数个数大于addHeader的参数个数,会主动扩大列,取最大的列数量进行显示。

table = logger.table({     grid:2,    maxColWidth:12,                                    })// 表头定义了4列table.addHeader("名称","性别","出生日期","<寓居地址")// 该行提供了5个单元格参数table.addRow("令狐冲","男","1653/12/2","思过崖","华山派")table.addRow("东方不败","男","1603/6/3","日月神教无敌峰藏经阁")table.addRow("任盈盈","女","1651/2/8","")  table.render()
  • 渲染单元格时会依照配置中指定的款式,别离对不同的数据类型显示不同的色彩。
  • 表格行每一列会依据内容自适应宽度显示,然而其最大值受配置参数中的maxColWidth束缚,当单元格内容字符宽度超过maxColWidth时会显示省略号。成果如下:

addSummary

减少汇总行,汇总行用来合并所有单元格并显示内容。

addSummary(    content,                          // 单元格内容    {          style:"yellow,bright",        // 汇总色彩款式        align:"right",                // 汇总对齐形式,取值:left,auto,center,right    })
  • content参数能够是一个字符串,其显示色彩款式由style指定,默认值是yellow,bright
  • content参数也能够是一个Array,其显示色彩款式会依据数组成员的数据类型进行着色。

    效果图参阅上文。

addFooter

减少表尾,一个表格只能显示一个表尾。

addFooter(content,   {    style:"darkGray",      // 表尾色彩款式 ,当merge=false时失效    merge:<true/false>,   // 是否合并行显示,默认true    align:"left",          // 对齐形式,取值:left,auto,center,right    style:""})
  • content参数用法与addSummary 一样。
  • 表尾反对能够通过{merge:<true/false>}来配置是否合并显示或者分列显示。如addFooter([1,2,3,4],{merge:false})

  • 默认状况下merge=true,即addFooter("内容")===addFooter("内容",{merge:true})

addSeparator

grid=0grid=1即不显示网格线时用来减少一条分割线。

    addSeparator()   // 无参数

进度条

显示一个滚动的进度条。

根本用法

import createLogger from "logsets"import progressbarPlugin from ""const logger = createLogger({...})logger.use(progressbarPlugin)const pbar = logger.progressbar({    title     : "下载进度",    //...其余配置参数...})progressbar.begin()       // 开始启动进度条for(let i = 0 ; i <= 60; i++){    await delay()    progressbar.value(i) // 更新进度条}progressbar.end()           // 完结进度条

progressbar.demo.js输入成果如下:

配置参数

progressbar反对以下配置参数:

{    title:"<显示题目>"    theme     : "",       // 可选主题色,内置反对default,red,green    max       : 100,      // 进度最大值    min       : 0,        // 进度最小值    value     : 0,        // 以后值       // 显示在最初的备注字符串,反对插值变量{value} {percent} {max} {min}    dispaly   : "{percent}%",    width     : 60,       // 进度条宽度     background: {         // 进度条款式        show  : true,     // 是否显示背景,默认显示,不显示时只显示进度条滑块        style : "bgDarkGray",       // 进度条款式        char  : " "    },           slider    : {                // 滑块字符        style : "bgWhite",       // 进度条款式        char  : " ",             //     } }
  • 所有参数均是可选的,大部份状况下只须要配置maxmin参数即可。
  • dispaly参数用来管制当进度条正在执行时显示在右侧的信息,反对插值变量{value} {percent} {max} {min},比方"{percent}%"显示百分比,"{value}/{max}"显示以后进度值与最大值。
  • width用来指定进度条的宽度,默认是60个字符。
  • background用来管制进度条的背景,默认是暗灰色空格。
  • slider用来管制进度值,默认是红色空格。

API

  • begin()

    开始一个进度条,开始时会暗藏光标

  • value(n)

    更新进度

  • end(note)

    完结进度条,完结后换行

  • stop(note)

    进行进度条,note参数会显示在进度条右侧。

  • error(note)

    进度条出错,note参数会显示在进度条右侧。

工作列表

显示正在进行的工作列表,能显示工作的状态。

根本用法

import createLogger from "logsets"import tasklistPlugin from ""const logger = createLogger({...})logger.use(tasklistPlugin)// 创立一个工作列表let tasks = logger.tasklist({})// 新增一个工作列表项tasks.add("开始扫描文件")// 减少后,工作列表项会处于运行状态,须要别离调用complete/error/stop/skip/todo等完结运行状态tasks.complete("OK")tasks.add("筹备对文件进行预处理")tasks.error("ERROR:文件没有找到")tasks.add("读取文件并编译成exe文件")tasks.skip("SKIP")tasks.add("工作解决被进行")tasks.stop("STOP")tasks.add("工作待办状态")tasks.todo("TODO")  

运行后的成果如下:

配置参数

以下所有配置参数均为可选,仅当您对默认款式不称心时进行定制。

 {     indent    : "  ",       // 列表项缩进字符     style     : "",         // 题目款式,能够用red,bgYellow等组合,参阅输入款式    width     : 60,         // 列表项总宽度    refInterval:200,        // 列表项渲染距离,以ms为单位    progressbar:{        style:"darkGray",   // 进度条款式,默认是深灰色        char:".",           // 进度条字符,当工作处于运行状态时会动态显示    },    // 当新工作项后会主动running,后续能够调用办法结束任务    status:{           running:{            style:"white",            symbol:"-",            note:""        },                complete:{            style:"green",            symbol:"√",            note:"OK"        },        error:{            style:"red",            symbol:"×",            note:"ERROR"                    },        skip:{            style:"yellow",            symbol:"○",            note:"SKIP"        },        stop:{            style:"red",            symbol:"●",            note:"STOP"        },        todo:{            style:"lightCyan",            symbol:"□",            note:"TODO"        }    }  }

除以上runningcompleteerrorskipstoptodo工作状态外,还反对自定义状态。

let tasks = logger.tasklist({    status:{        connected:{            symbol:"*",            style:"green"        }    }})tasks.add("正在连接")tasks.connected()

API

  • add(title)

    新减少一个工作,减少后会主动进入运行状态,如果上一个工作还在进行中会主动实现。

  • <状态名称>(note)

    使以后正在进行的工作完结并进入指定的状态,传入的可选的note参数显示在最右侧。

横幅

显示一个广告横幅

根本用法

import createLogger from "./index.js" import BannerPlugin from "./banner.plugin.js"const logger = createLogger()logger.use(BannerPlugin)let banner = logger.banner({ })banner.add("Logsets Utility Toolkit")banner.add("Output color elements at the terminal")banner.add("Version: ",1)banner.add("Release: ","2022-01-01")banner.render()

输入成果如下:

banner = logger.banner({     width:60})banner.add("Logsets工具库")banner.add("在终端命令行输入黑白文本",{style:"darkGray"})banner.add()          // 输入空行banner.add("版本: ",1)banner.add("网站: ","http://www.logsets.com",{align: 'left',style:["","lightBlue"]})banner.add("公布日期: ","2022-01-01",{align: 'right',style:["","lightMagenta"]})banner.add("作者: ","fisher",{align: 'right',style:["","lightCyan"]})banner.add("许可证: ","MIT ","GPL ","Apache 2.0",{style:["","red"]})banner.render()

配置参数

{    indent       : " ",                          // 横幅整体缩进    border       : {        style    : "lightGray",                  // 边框色彩        width    : 1                             // 边框宽度,0-不显示,1-复线框,2-双线框    },    // 第一行主动作为题目行    title        : {        align    : "center",                       // 题目对齐形式             style    : ["","","green,bright","",""],   // 题目款式色彩        wrapper  : "☆ ☆ ☆"                       // 题目包裹符号,用来装璜     },    align        : "center",                     // 横幅行默认对齐形式,默认居中    paddingLeft  : 4,                            // 左右空白宽度,以字符为单位    paddingRight : 4,    paddingTop   : 1,                            // 顶部和底部空白行    paddingBottom: 1}

API

  • add(arg1,arg2,...,{options})

    减少行,反对多个输入参数,每个参数均会依照logger的数据类型的配色进行输入。

    如果最初一个参数是一个{},则反对配置额定的款式和参数。

    banner.add(arg1,arg2,...,{    align:"center | left | right",            // 整体居中、居左、居右    // 指定该行整行的色调    style:"<色调款式>",                                // 能够为每一个参数指定色彩。    style:[           "<第1个参数的色调款式>",           "<第2个参数的色调款式>",           "<第3个参数的色调款式>",           ...,           "<第n个参数的色调款式>"    ]    //当参数个数与style数组长度不匹配时,会取最初一个style[style.length-1] })// text1显示红色,text2/text3/text4显示黄色banner.add("text1","text2","text3","text4",{style:["red","yellow"]})

输入树结构,比方文件夹等。

根本用法

import createLogger from "./index.js" import TreePlugin from "./tree.plugin.js"const logger = createLogger()logger.use(TreePlugin)let tree = logger.tree({    root:"文件构造"})tree.addNode("readme.md")tree.addNode("package.json")tree.addNode("个人简历.doc",{note:logger.colors.green("√")})tree.addNode("网络组网计划.docx")tree.addNode("工资清单.xlsx") tree.addNode("<src>",{style:"yellow"})     tree.beginChildren()         tree.addNode("readme.md")        tree.addNode("package.json")        tree.addNode("个人简历.doc")            tree.beginChildren()             tree.addNode("readme.md")            tree.addNode("package.json")            tree.addNode("个人简历.doc")            tree.addNode("网络组网计划.docx")            tree.addNode("工资清单.xlsx",{last:true})             tree.endChildren()         tree.addNode("网络组网计划.docx")        tree.addNode("工资清单.xlsx",{last:true})     tree.endChildren() tree.addNode("网络组网计划.docx")tree.addNode("工资清单.xlsx",{last:true})     

输入成果如下:


树还能够配置为每一个节点输入备注信息。

let tree = logger.tree({    root:"文件构造",    note:{        enable:true    }})tree.addNode("readme.md",{note:logger.colors.green("√")})tree.addNode("package.json",{note:logger.colors.green("√")})tree.addNode("个人简历.doc",{note:logger.colors.green("√")})tree.addNode("网络组网计划.docx",{note:logger.colors.green("√")})tree.addNode("工资清单.xlsx",{note:logger.colors.green("√")}) tree.addNode("<src>",{style:"yellow",note:logger.colors.red("×")})     tree.beginChildren()         tree.addNode("readme.md")        tree.addNode("package.json")        tree.addNode("个人简历.doc")            tree.beginChildren()             tree.addNode("readme.md")            tree.addNode("package.json",{note:logger.colors.red("×")})            tree.addNode("个人简历.doc",{note:"已审核"})            tree.addNode("网络组网计划.docx")            tree.addNode("工资清单.xlsx",{last:true})             tree.endChildren()         tree.addNode("网络组网计划.docx")        tree.addNode("工资清单.xlsx",{last:true})     tree.endChildren() tree.addNode("网络组网计划.docx")tree.addNode("工资清单.xlsx",{last:true})    

输入成果如下:

配置参数

{    root: "Root",                    // 根节点显示内容    width: 60,                      // 当显示备注信息时,树的总宽度    indent:" ",                     // 整体缩进字符    node:{                                style:"",                   // 默认节点款式    },    note:{                          // 节点备注        enable:false,                // 是否显示备注信息        style:"darkGrey",           // 备注信息的默认款式        char:".",                     // 备注批示线    }  }

API

  • addNode(text,{style,note,last})

    减少一个树节点

    style用来配置节点的显示色彩款式,如style="red"时,节节点文本显示为红色。

    note用来提供备注信息;

    last用来提醒这是以后最初一个节点,当增加节点时,树线默认显示├── ,当last=true时,则显示└── ,这样就能够确保最初一个子节点显示正确。

  • beginChildren()endChildren()

    开始和完结一个子节点集。

输入黑白内容

logsets依赖于ansicolors,并且将其挂在了logsets.colors下,因而也能够间接调用来生成黑白内容。

import createLogger from "./index.js" import TreePlugin from "./tree.plugin.js"const logger = createLogger()console.log(ogger.colors.red(text))console.log(logger.colors.green(text))console.log(logger.colors.yellow(text))console.log(logger.colors.blue(text))console.log(logger.colors.magenta(text))console.log(logger.colors.cyan(text))console.log(logger.colors.white(text))console.log(logger.colors.darkGray(text))console.log(logger.colors.black())/.......更加的着色办法请参考ansicolor文档

logger.colors===ansicolor实例,可参考其文档。

全局配置

logsets反对丰盛的配置参数,能够自定义输入款式。

默认配置

残缺配置如下:

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

配置数据类型的款式能够按如下形式:

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

显示款式名称反对设置一个或多个,同时应用多个时采纳,离开。

款式名称用来指定以何种前景色彩、背景色彩或润饰款式,反对如下值:

  • 一般前景色:redgreenyellowbluemagentacyanwhitedarkGrayblack

    • 加亮前景色:lightRedlightGreenlightYellowlightBluelightMagenta,lightCyan ,lightGray
  • 一般背景色:bgRedbgGreenbgYellowbgBluebgMagentabgCyanbgWhitebgDarkGraybgBlack
  • 加亮背景色:bgLightRedbgLightGreenbgLightYellowbgLightBluebgLightMagentabgLightCyanbgLightGray
  • 润饰款式:brightdimitalicunderlineinverse

举例如下:

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

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

注:款式可能受不平操作系统平台差别,局部款式不反对。

文本款式

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

style参数是一个应用,宰割的字符串,能够同时利用1-N个字符串色调和款式。比方style="bgLightRed,white"代表采纳亮红色背景红色文本形式显示。

版本历史

最新版本1.0.7

开源地址:https://gitee.com/zhangfisher/logsets.git