@@ -2,7 +2,13 @@ import * as path from 'path';
22import { format , Logger , loggers } from 'winston' ;
33import { DebugTransport } from './debug-transport' ;
44
5- function createLogger ( name : string , options ?: any ) : Logger {
5+ /**
6+ * Get or create a logger with empty transport
7+ * @param name
8+ * @param options
9+ */
10+ export function getLogger ( name : string , options ?: any ) : Logger {
11+ // TODO: Refactor options for logger (not for transport)
612 if ( ! loggers . has ( name ) ) {
713 // add default Debug transport?
814 const defaultTransports = Object . keys ( options || { } ) . length > 0 ? [ ] : [
@@ -49,7 +55,27 @@ function createLogger(name: string, options?: any): Logger {
4955 return loggers . get ( name ) ;
5056}
5157
58+ /**
59+ * Get or create logger with default `debug` transport
60+ */
61+ export function getDebugLogger ( name : string , options ?: any ) {
62+ if ( ! loggers . has ( name ) ) {
63+ loggers . add ( name , {
64+ exitOnError : false ,
65+ level : 'info' ,
66+ format : format . combine (
67+ format . splat ( ) , // formats level.message based on Node's util.format().
68+ format . label ( { label : name } ) ,
69+ format . colorize ( ) ,
70+ format . timestamp ( ) ,
71+ format . printf ( ( { level, message, label, timestamp } ) => `${ timestamp } [${ label } ] ${ level } : ${ message } ` )
72+ ) ,
73+ transports : [ new DebugTransport ( options , name ) ] ,
74+ } ) ;
75+ }
76+ return loggers . get ( name ) ;
77+ }
78+
5279export {
53- createLogger ,
5480 DebugTransport
5581} ;
0 commit comments