1
1
/**
2
2
* # loggers.js
3
- * Copyright(c) 2020 Stefano Balietti
3
+ * Copyright(c) 2021 Stefano Balietti
4
4
* MIT Licensed
5
5
*
6
6
* Configuration file for Winston.js in nodegame-server
@@ -13,81 +13,86 @@ const winston = require('winston');
13
13
14
14
// Variable loggers is winston.loggers.
15
15
function configure ( loggers , logDir ) {
16
+ let format = winston . format ;
16
17
let logLevel = winston . level ;
18
+ let transports = winston . transports ;
19
+
20
+ const logFormatter = format . printf ( ( info ) => {
21
+ let { timestamp, level, stack, message } = info ;
22
+ message = stack || message ;
23
+ return `${ timestamp } ${ level } : ${ message } ` ;
24
+ } ) ;
25
+
26
+ let consoleFormat = format . combine ( format . colorize ( ) , format . simple ( ) ,
27
+ format . timestamp ( ) , logFormatter ) ;
17
28
18
29
// ServerNode.
19
30
loggers . add ( 'servernode' , {
20
- console : {
21
- level : logLevel ,
22
- colorize : true
23
- } ,
24
- file : {
25
- level : logLevel ,
26
- timestamp : true ,
27
- filename : path . join ( logDir , 'servernode.log' ) ,
28
- maxsize : 1000000 ,
29
- maxFiles : 10
30
- }
31
+ // format: format.errors({ stack: true }),
32
+ transports : [
33
+ new transports . Console ( {
34
+ level : logLevel ,
35
+ // colorize: true
36
+ format : consoleFormat
37
+ } ) ,
38
+ new transports . File ( {
39
+ level : logLevel ,
40
+ timestamp : true ,
41
+ filename : path . join ( logDir , 'servernode.log' ) ,
42
+ maxsize : 1000000 ,
43
+ maxFiles : 10
44
+ } )
45
+ ]
46
+
31
47
} ) ;
32
48
33
49
// Channel.
34
50
loggers . add ( 'channel' , {
35
- console : {
36
- level : logLevel ,
37
- colorize : true ,
38
- } ,
39
- file : {
40
- level : logLevel ,
41
- timestamp : true ,
42
- filename : path . join ( logDir , 'channels.log' ) ,
43
- maxsize : 1000000 ,
44
- maxFiles : 10
45
- }
51
+ format : format . errors ( { stack : true } ) ,
52
+ transports : [
53
+ new transports . Console ( {
54
+ level : logLevel ,
55
+ // colorize: true
56
+ format : consoleFormat
57
+ } ) ,
58
+ new transports . File ( {
59
+ level : logLevel ,
60
+ timestamp : true ,
61
+ filename : path . join ( logDir , 'channels.log' ) ,
62
+ maxsize : 1000000 ,
63
+ maxFiles : 10
64
+ } )
65
+ ]
46
66
} ) ;
47
67
48
68
// Messages.
49
69
// Make custom levels and only File transports for messages.
50
- let msgLogger = loggers . add ( 'messages' ) ;
51
- msgLogger . remove ( winston . transports . Console ) ;
52
- msgLogger . add ( winston . transports . File , {
53
- timestamp : true ,
54
- maxsize : 1000000 ,
55
- filename : path . join ( logDir , 'messages.log' )
70
+ let msgLogger = loggers . add ( 'messages' , {
71
+ format : format . errors ( { stack : true } ) ,
72
+ transports : [
73
+ new transports . File ( {
74
+ timestamp : true ,
75
+ maxsize : 1000000 ,
76
+ filename : path . join ( logDir , 'messages.log' )
77
+ } )
78
+ ]
56
79
} ) ;
57
80
58
- // Do not change, or logging might be affected.
59
- // Logger.js hardcodes the values for speed.
60
- msgLogger . setLevels ( {
61
- // Log none.
62
- none : 0 ,
63
- // All DATA msgs.
64
- data : 1 ,
65
- // All SET and DATA msgs.
66
- set : 3 ,
67
- // All SET, GET and DATA msgs.
68
- get : 5 ,
69
- // All SETUP, SET, GET and DATA msgs.
70
- setup : 7 ,
71
- // All messages, but **not** PLAYER_UPDATE, SERVERCOMMAND and ALERT.
72
- game : 9 ,
73
- // All messages.
74
- all : 11
75
- } ) ;
76
-
77
- // Set default logging level for messages.
78
- msgLogger . level = 'all' ;
79
-
80
81
// Clients.
81
82
loggers . add ( 'clients' , {
82
- console : {
83
- level : logLevel ,
84
- colorize : true ,
85
- } ,
86
- file : {
87
- level : 'silly' ,
88
- timestamp : true ,
89
- filename : path . join ( logDir , 'clients.log' )
90
- }
83
+ format : format . errors ( { stack : true } ) ,
84
+ transports : [
85
+ new transports . Console ( {
86
+ level : logLevel ,
87
+ // colorize: true
88
+ format : consoleFormat
89
+ } ) ,
90
+ new transports . File ( {
91
+ level : 'silly' ,
92
+ timestamp : true ,
93
+ filename : path . join ( logDir , 'clients.log' )
94
+ } )
95
+ ]
91
96
} ) ;
92
97
93
98
return true ;
0 commit comments