-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.js
68 lines (61 loc) · 2.33 KB
/
logger.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
* ASCard Webservice
* Winston Logger
*/
// Examples for logging
// ---------------------------------------
// logger.log({ level: 'info', message: 'Pass an object and this works', additional: 'properties', are: 'passed along' });
// logger.info({ message: 'Use a helper method if you want', additional: 'properties', are: 'passed along' });
// logger.log('info', 'Pass a message and this works', { additional: 'properties', are: 'passed along' });
// logger.info('Use a helper method if you want', { additional: 'properties', are: 'passed along' });
// logger.log('info', 'test message %s', 'my string');
// logger.log('info', 'test message %d', 123);
// logger.log('info', 'test message %s, %s', 'first', 'second', { number: 123 });
// logger.info('Found %s at %s', 'error', new Date());
// logger.info('Found %s at %s', 'error', new Error('chill winston'));
// logger.info('Found %s at %s', 'error', /WUT/);
// logger.info('Found %s at %s', 'error', true);
// logger.info('Found %s at %s', 'error', 100.00);
// logger.info('Found %s at %s', 'error', ['1, 2, 3']);
// logger.warn(new Error('Error passed as info'));
// logger.log('error', new Error('Error passed as message'));
// logger.warn('Maybe important error: ', new Error('Error passed as meta'));
// logger.log('error', 'Important error: ', new Error('Error passed as meta'));
// logger.error(new Error('Error as info'));
const winston = require("winston");
require("winston-daily-rotate-file");
const fileRotateCombinedTransport = new winston.transports.DailyRotateFile({
filename: "./log/combined-%DATE%.log",
datePattern: "YYYY-MM-DD",
level: "info",
maxFiles: "14d",
});
const fileRotateErrorTransport = new winston.transports.DailyRotateFile({
filename: "./log/error-%DATE%.log",
datePattern: "YYYY-MM-DD",
level: "error",
maxFiles: "7d",
});
const { createLogger, format, transports } = require("winston");
const logger = createLogger({
level: "info",
format: format.combine(
format.timestamp({
format: "YYYY-MM-DD HH:mm:ss",
}),
format.align(),
format.splat(),
format.printf(
(info) => `[${info.timestamp}] ${info.level}: ${info.message}`
)
),
defaultMeta: { service: "ascard-service" },
transports: [
new winston.transports.Console(),
fileRotateCombinedTransport,
fileRotateErrorTransport,
],
});
module.exports = {
logger,
};