klg-logger
Advanced tools
Comparing version 2.0.2 to 3.0.0-0
@@ -1,16 +0,3 @@ | ||
import { Tracer } from 'tracer'; | ||
/** | ||
* console 是一个没有 constructor 属性的 function,不能直接 class Logger extends console | ||
* 所以需要通过 Function 来做一个桥接,在 Function 的 constructor 中 return console 实例 | ||
*/ | ||
export declare class Logger extends Function implements Tracer.Logger { | ||
constructor(config?: Tracer.LoggerConfig); | ||
debug(...args: any[]): Tracer.LogOutput; | ||
err(...args: any[]): Tracer.LogOutput; | ||
error(...args: any[]): Tracer.LogOutput; | ||
fatal(...args: any[]): Tracer.LogOutput; | ||
info(...args: any[]): Tracer.LogOutput; | ||
log(...args: any[]): Tracer.LogOutput; | ||
trace(...args: any[]): Tracer.LogOutput; | ||
warn(...args: any[]): Tracer.LogOutput; | ||
} | ||
export * from 'tracer'; | ||
import { console as Logger, dailyfile as LoggerDaily } from 'tracer'; | ||
export { Logger, LoggerDaily }; |
"use strict"; | ||
function __export(m) { | ||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
} | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__export(require("tracer")); | ||
const tracer_1 = require("tracer"); | ||
/** | ||
* console 是一个没有 constructor 属性的 function,不能直接 class Logger extends console | ||
* 所以需要通过 Function 来做一个桥接,在 Function 的 constructor 中 return console 实例 | ||
*/ | ||
class Logger extends Function { | ||
constructor(config) { | ||
super(); | ||
Object.setPrototypeOf(tracer_1.console, Logger.prototype); | ||
const instance = tracer_1.console(config); | ||
instance.err = instance.error; | ||
return instance; | ||
} | ||
// 下列方法都会被覆盖,只做声明用, 无需实现 | ||
debug(...args) { | ||
return undefined; | ||
} | ||
err(...args) { | ||
return this.error(...args); | ||
} | ||
error(...args) { | ||
return undefined; | ||
} | ||
fatal(...args) { | ||
return undefined; | ||
} | ||
info(...args) { | ||
return undefined; | ||
} | ||
log(...args) { | ||
return undefined; | ||
} | ||
trace(...args) { | ||
return undefined; | ||
} | ||
warn(...args) { | ||
return undefined; | ||
} | ||
} | ||
exports.Logger = Logger; | ||
exports.Logger = tracer_1.console; | ||
exports.LoggerDaily = tracer_1.dailyfile; | ||
//# sourceMappingURL=Logger.js.map |
@@ -7,3 +7,3 @@ "use strict"; | ||
it(' test ts log', async () => { | ||
const logger = new Logger_1.Logger({ | ||
const logger = Logger_1.Logger({ | ||
level: 'log', | ||
@@ -24,11 +24,11 @@ stackIndex: 1, | ||
it(' test info', async () => { | ||
const logger = new Logger_1.Logger(); | ||
const logger = Logger_1.Logger(); | ||
logger.info('hello world'); | ||
}); | ||
it(' test debug', async () => { | ||
const logger = new Logger_1.Logger(); | ||
const logger = Logger_1.Logger(); | ||
logger.debug('hello world'); | ||
}); | ||
it(' test warn', async () => { | ||
const logger = new Logger_1.Logger({ | ||
const logger = Logger_1.Logger({ | ||
transport: function (data) { | ||
@@ -44,10 +44,22 @@ assert(data.level === 4); | ||
it(' test error', async () => { | ||
const logger = new Logger_1.Logger(); | ||
const logger = Logger_1.Logger(); | ||
logger.error('hello world'); | ||
}); | ||
it(' test err', async () => { | ||
const logger = new Logger_1.Logger(); | ||
const logger = Logger_1.Logger(); | ||
logger.err = logger.error; | ||
logger.err('hello world'); | ||
}); | ||
it(' daily ', async () => { | ||
const logger = Logger_1.LoggerDaily({ | ||
root: '/data/app/log', | ||
maxLogFiles: 10, | ||
allLogsFileName: true, | ||
level: 'log' | ||
}); | ||
logger.log('hello world'); | ||
logger.err = logger.error; | ||
logger.err('hello world'); | ||
}); | ||
}); | ||
//# sourceMappingURL=Logger.test.js.map |
{ | ||
"name": "klg-logger", | ||
"version": "2.0.2", | ||
"version": "3.0.0-0", | ||
"description": "log 工具,基于 tracer,简单,可以显示 log 的位置", | ||
@@ -25,3 +25,3 @@ "main": "dist/index.js", | ||
"dependencies": { | ||
"tracer": "0.9.1" | ||
"tracer": "^0.9.2" | ||
}, | ||
@@ -28,0 +28,0 @@ "devDependencies": { |
121
README.md
@@ -5,6 +5,8 @@ # klg-logger | ||
## 配置 | ||
见 tracer 文档 https://www.npmjs.com/package/tracer | ||
3.0 版本开始,将不对 tracer 做任何封装,直接使用 Tracer | ||
## 用法 | ||
详细用法见 tracer 文档 https://www.npmjs.com/package/tracer | ||
## 基本用法 | ||
### 简单版本 | ||
@@ -16,4 +18,4 @@ 默认版本是把 log 输出到 console | ||
const logger = new Logger({ | ||
level: config.get('log.level'), | ||
const logger = Logger({ | ||
level: config.get('log.level'), | ||
dateformat: 'yyyy-mm-dd HH:MM:ss.L', | ||
@@ -30,6 +32,66 @@ inspectOpt: { | ||
export default logger | ||
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<string>]; | ||
/** | ||
* Datetime format (Using `Date Format`) | ||
*/ | ||
dateformat?: string; | ||
filters?: FilterFunction[] | LevelOption<FilterFunction> | Array<FilterFunction | LevelOption<FilterFunction | FilterFunction[]>>; | ||
/** | ||
* 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 | ||
@@ -39,2 +101,3 @@ 如果你需要把 log 输出到文件或者发送其他地方,可以自定义 transport function | ||
```js | ||
import { Logger } from 'klg-logger' | ||
const logger = new Logger({ | ||
@@ -54,1 +117,49 @@ level: 'log', | ||
``` | ||
### 每日分割日志 | ||
如果你需要把 log 输出到文件或者发送其他地方,可以自定义 transport function | ||
```js | ||
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.error | ||
logger.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; | ||
} | ||
``` |
import * as assert from 'power-assert' | ||
import {Logger} from './Logger' | ||
import {Logger, LoggerDaily} from './Logger' | ||
@@ -7,3 +7,3 @@ describe('logger ts test', async function () { | ||
it(' test ts log', async () => { | ||
const logger = new Logger({ | ||
const logger = Logger({ | ||
level: 'log', | ||
@@ -25,3 +25,3 @@ stackIndex: 1, | ||
it(' test info', async () => { | ||
const logger = new Logger() | ||
const logger = Logger() | ||
logger.info('hello world') | ||
@@ -31,3 +31,3 @@ }) | ||
it(' test debug', async () => { | ||
const logger = new Logger() | ||
const logger = Logger() | ||
logger.debug('hello world') | ||
@@ -37,3 +37,3 @@ }) | ||
it(' test warn', async () => { | ||
const logger = new Logger({ | ||
const logger = Logger({ | ||
transport: function (data) { | ||
@@ -50,3 +50,3 @@ assert(data.level === 4) | ||
it(' test error', async () => { | ||
const logger = new Logger() | ||
const logger = Logger() | ||
logger.error('hello world') | ||
@@ -56,5 +56,18 @@ }) | ||
it(' test err', async () => { | ||
const logger = new Logger() | ||
const logger = Logger() | ||
logger.err = logger.error | ||
logger.err('hello world') | ||
}) | ||
it(' daily ', async () => { | ||
const logger = LoggerDaily({ | ||
root: '/data/app/log', | ||
maxLogFiles: 10, | ||
allLogsFileName : true, | ||
level: 'log' | ||
}) | ||
logger.log('hello world') | ||
logger.err = logger.error | ||
logger.err('hello world') | ||
}) | ||
}) |
@@ -1,48 +0,5 @@ | ||
import {console, Tracer} from 'tracer' | ||
export * from 'tracer' | ||
import {console as Logger, dailyfile as LoggerDaily} from 'tracer' | ||
/** | ||
* console 是一个没有 constructor 属性的 function,不能直接 class Logger extends console | ||
* 所以需要通过 Function 来做一个桥接,在 Function 的 constructor 中 return console 实例 | ||
*/ | ||
export class Logger extends Function implements Tracer.Logger { | ||
constructor (config?: Tracer.LoggerConfig) { | ||
super() | ||
Object.setPrototypeOf(console, Logger.prototype) | ||
const instance = console(config as any) as Logger | ||
instance.err = instance.error | ||
return instance | ||
} | ||
// 下列方法都会被覆盖,只做声明用, 无需实现 | ||
debug (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
err (...args: any[]): Tracer.LogOutput { | ||
return this.error(...args) | ||
} | ||
error (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
fatal (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
info (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
log (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
trace (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
warn (...args: any[]): Tracer.LogOutput { | ||
return undefined | ||
} | ||
} | ||
export {Logger, LoggerDaily} |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
12072
161
218
2
+ Added@babel/code-frame@7.24.7(transitive)
+ Added@babel/generator@7.24.7(transitive)
+ Added@babel/helper-environment-visitor@7.24.7(transitive)
+ Added@babel/helper-function-name@7.24.7(transitive)
+ Added@babel/helper-hoist-variables@7.24.7(transitive)
+ Added@babel/helper-split-export-declaration@7.24.7(transitive)
+ Added@babel/helper-string-parser@7.24.7(transitive)
+ Added@babel/helper-validator-identifier@7.24.7(transitive)
+ Added@babel/highlight@7.24.7(transitive)
+ Added@babel/parser@7.24.7(transitive)
+ Added@babel/template@7.24.7(transitive)
+ Added@babel/traverse@7.24.7(transitive)
+ Added@babel/types@7.24.7(transitive)
+ Added@jridgewell/gen-mapping@0.3.5(transitive)
+ Added@jridgewell/resolve-uri@3.1.2(transitive)
+ Added@jridgewell/set-array@1.2.1(transitive)
+ Added@jridgewell/sourcemap-codec@1.4.15(transitive)
+ Added@jridgewell/trace-mapping@0.3.25(transitive)
+ Addedansi-regex@4.1.1(transitive)
+ Addedansi-styles@3.2.1(transitive)
+ Addedappend-transform@1.0.0(transitive)
+ Addedarchy@1.0.0(transitive)
+ Addedargparse@1.0.10(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedcaching-transform@3.0.2(transitive)
+ Addedcamelcase@5.3.1(transitive)
+ Addedchalk@2.4.2(transitive)
+ Addedcliui@5.0.0(transitive)
+ Addedcolor-convert@1.9.3(transitive)
+ Addedcolor-name@1.1.3(transitive)
+ Addedcolors@1.3.3(transitive)
+ Addedcommondir@1.0.1(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedconvert-source-map@1.9.0(transitive)
+ Addedcp-file@6.2.0(transitive)
+ Addedcross-spawn@4.0.2(transitive)
+ Addeddebug@4.3.5(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addeddefault-require-extensions@2.0.0(transitive)
+ Addedemoji-regex@7.0.3(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addedes6-error@4.1.1(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedesprima@4.0.1(transitive)
+ Addedfind-cache-dir@2.1.0(transitive)
+ Addedfind-up@3.0.0(transitive)
+ Addedforeground-child@1.5.6(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-caller-file@2.0.5(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedglobals@11.12.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas-flag@3.0.0(transitive)
+ Addedhasha@3.0.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhosted-git-info@2.8.9(transitive)
+ Addedhtml-escaper@2.0.2(transitive)
+ Addedimurmurhash@0.1.4(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-core-module@2.14.0(transitive)
+ Addedis-fullwidth-code-point@2.0.0(transitive)
+ Addedis-stream@1.1.0(transitive)
+ Addedisexe@2.0.0(transitive)
+ Addedistanbul-lib-coverage@2.0.5(transitive)
+ Addedistanbul-lib-hook@2.0.7(transitive)
+ Addedistanbul-lib-instrument@3.3.0(transitive)
+ Addedistanbul-lib-report@2.0.8(transitive)
+ Addedistanbul-lib-source-maps@3.0.6(transitive)
+ Addedistanbul-reports@2.2.7(transitive)
+ Addedjs-tokens@4.0.0(transitive)
+ Addedjs-yaml@3.14.1(transitive)
+ Addedjsesc@2.5.2(transitive)
+ Addedjson-parse-better-errors@1.0.2(transitive)
+ Addedload-json-file@4.0.0(transitive)
+ Addedlocate-path@3.0.0(transitive)
+ Addedlodash.flattendeep@4.4.0(transitive)
+ Addedlru-cache@4.1.5(transitive)
+ Addedmake-dir@2.1.0(transitive)
+ Addedmerge-source-map@1.1.0(transitive)
+ Addedminimatch@3.1.2(transitive)
+ Addedms@2.1.2(transitive)
+ Addednested-error-stacks@2.1.1(transitive)
+ Addednormalize-package-data@2.5.0(transitive)
+ Addednyc@14.1.1(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedos-homedir@1.0.2(transitive)
+ Addedp-limit@2.3.0(transitive)
+ Addedp-locate@3.0.0(transitive)
+ Addedp-try@2.2.0(transitive)
+ Addedpackage-hash@3.0.0(transitive)
+ Addedparse-json@4.0.0(transitive)
+ Addedpath-exists@3.0.0(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpath-type@3.0.0(transitive)
+ Addedpicocolors@1.0.1(transitive)
+ Addedpify@3.0.04.0.1(transitive)
+ Addedpkg-dir@3.0.0(transitive)
+ Addedpseudomap@1.0.2(transitive)
+ Addedread-pkg@3.0.0(transitive)
+ Addedread-pkg-up@4.0.0(transitive)
+ Addedrelease-zalgo@1.0.0(transitive)
+ Addedrequire-directory@2.1.1(transitive)
+ Addedrequire-main-filename@2.0.0(transitive)
+ Addedresolve@1.22.8(transitive)
+ Addedresolve-from@4.0.0(transitive)
+ Addedrimraf@2.7.1(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsemver@5.7.26.3.1(transitive)
+ Addedset-blocking@2.0.0(transitive)
+ Addedsignal-exit@3.0.7(transitive)
+ Addedsource-map@0.6.1(transitive)
+ Addedspawn-wrap@1.4.3(transitive)
+ Addedspdx-correct@3.2.0(transitive)
+ Addedspdx-exceptions@2.5.0(transitive)
+ Addedspdx-expression-parse@3.0.1(transitive)
+ Addedspdx-license-ids@3.0.18(transitive)
+ Addedsprintf-js@1.0.3(transitive)
+ Addedstring-width@3.1.0(transitive)
+ Addedstrip-ansi@5.2.0(transitive)
+ Addedstrip-bom@3.0.0(transitive)
+ Addedsupports-color@5.5.06.1.0(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedtest-exclude@5.2.3(transitive)
+ Addedto-fast-properties@2.0.0(transitive)
+ Addedtracer@0.9.9(transitive)
+ Addeduuid@3.4.0(transitive)
+ Addedvalidate-npm-package-license@3.0.4(transitive)
+ Addedwhich@1.3.1(transitive)
+ Addedwhich-module@2.0.1(transitive)
+ Addedwrap-ansi@5.1.0(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedwrite-file-atomic@2.4.3(transitive)
+ Addedy18n@4.0.3(transitive)
+ Addedyallist@2.1.2(transitive)
+ Addedyargs@13.3.2(transitive)
+ Addedyargs-parser@13.1.2(transitive)
- Removedcolors@1.2.3(transitive)
- Removedtracer@0.9.1(transitive)
Updatedtracer@^0.9.2