@autofleet/node-common 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/logger/example.js CHANGED
@@ -1,4 +1,6 @@
1
1
  const logger = require('./index')('debug')
2
+
2
3
  logger.info('it is working')
3
4
  logger.error('errors displayed in logs/error.log')
4
- logger.debug('debug with object', {a: 5})
5
+ logger.debug('debug with object', { a: 5 })
6
+ logger.debug('debug with 2 objects', { 1: { a: 5 }, 2: { b: 2 } })
package/logger/index.js CHANGED
@@ -1,4 +1,7 @@
1
- const winston = require('winston')
1
+ const { createLogger, transports, format } = require('winston')
2
+
3
+ const { combine, timestamp, printf } = format
4
+
2
5
  require('dotenv').config()
3
6
 
4
7
  const { env } = process
@@ -12,20 +15,39 @@ const getLevel = (logLevel) => {
12
15
  }
13
16
 
14
17
  const getTransporters = () => {
15
- let transporters = [new winston.transports.Console()]
18
+ const consoleTrasporter = new transports.Console()
19
+ let transporters = [consoleTrasporter]
16
20
  if (env.USE_LOG_FILES === 'true') {
17
21
  transporters = transporters.concat([
18
- new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
19
- new winston.transports.File({ filename: 'logs/all.log' }),
22
+ new transports.File({ filename: 'logs/error.log', level: 'error' }),
23
+ new transports.File({ filename: 'logs/all.log' }),
20
24
  ])
21
25
  }
22
26
  return transporters
23
27
  }
24
28
 
25
- const createLogger = (level, transporters) => {
26
- const logger = winston.createLogger({
29
+ const newLogger = (level, transporters) => {
30
+ const customFormat = printf((info) => {
31
+ const level = info.level
32
+ const message = info.message
33
+ const timestamp = info.timestamp
34
+ delete info.level
35
+ delete info.message
36
+ delete info.timestamp
37
+ const params = JSON.stringify(info, null, 2)
38
+ return `${level}: ${message} ${timestamp} \n ${params} \n *****************`
39
+ })
40
+
41
+ const logger = createLogger({
42
+ format: combine(
43
+ format.colorize(),
44
+ // format.json(),
45
+ format.simple(),
46
+ // prettyPrint(),
47
+ timestamp(),
48
+ customFormat,
49
+ ),
27
50
  level,
28
- format: winston.format.json(),
29
51
  transports: transporters,
30
52
  })
31
53
 
@@ -35,7 +57,8 @@ const createLogger = (level, transporters) => {
35
57
  const getLogger = (logLevel) => {
36
58
  const level = getLevel(logLevel)
37
59
  const transporters = getTransporters()
38
- return createLogger(level, transporters)
60
+ return newLogger(level, transporters)
39
61
  }
40
62
 
41
63
  module.exports = getLogger
64
+
@@ -14,52 +14,50 @@ const deleteLogFile = (filePath) => {
14
14
  }
15
15
  }
16
16
 
17
- const waitForFileToHaveContent = ((filePath) => {
18
- return wait.limit(30).until(() => {
19
- if (fs.existsSync(filePath)) {
20
- const content = fs.readFileSync(filePath, 'utf8')
21
- return content !== ''
22
- }
23
- return false
24
- })
25
- })
17
+ const waitForFileToHaveContent = (filePath => wait.limit(30).until(() => {
18
+ if (fs.existsSync(filePath)) {
19
+ const content = fs.readFileSync(filePath, 'utf8')
20
+ return content !== ''
21
+ }
22
+ return false
23
+ }))
26
24
 
27
25
  describe('Logger', () => {
28
26
  it('it`s default level is info', () => {
29
- env.NODE_ENV=''
27
+ env.NODE_ENV = ''
30
28
  const logger = Logger()
31
29
  expect(logger).toBeDefined()
32
30
  expect(logger.level).toBe('info')
33
31
  })
34
32
 
35
33
  it('its default develpment level is debug', () => {
36
- env.NODE_ENV='development'
34
+ env.NODE_ENV = 'development'
37
35
  const logger = Logger()
38
36
  expect(logger.level).toBe('debug')
39
37
  })
40
38
 
41
39
  it('its default test level is info', () => {
42
- env.NODE_ENV='test'
40
+ env.NODE_ENV = 'test'
43
41
  const logger = Logger()
44
42
  expect(logger.level).toBe('info')
45
43
  })
46
44
 
47
45
  it('its default production level is info', () => {
48
- env.NODE_ENV='production'
46
+ env.NODE_ENV = 'production'
49
47
  const logger = Logger()
50
48
  expect(logger.level).toBe('info')
51
49
  })
52
50
 
53
51
  it('its level can be override by LOG_LEVEL env variable', () => {
54
- env.NODE_ENV='development'
55
- env.LOG_LEVEL='warn'
52
+ env.NODE_ENV = 'development'
53
+ env.LOG_LEVEL = 'warn'
56
54
  const logger = Logger()
57
55
  expect(logger.level).toBe('warn')
58
56
  })
59
57
 
60
58
  it('its level can be override by function variable', () => {
61
- env.NODE_ENV='production'
62
- env.LOG_LEVEL='warn'
59
+ env.NODE_ENV = 'production'
60
+ env.LOG_LEVEL = 'warn'
63
61
  const logger = Logger('silly')
64
62
  expect(logger.level).toBe('silly')
65
63
  })
@@ -75,31 +73,31 @@ describe('Logger', () => {
75
73
  })
76
74
 
77
75
  it('it can have general file transporters', async () => {
78
- env.USE_LOG_FILES='true'
76
+ env.USE_LOG_FILES = 'true'
79
77
  const allPath = 'logs/all.log'
80
78
  deleteLogFile(allPath)
81
79
 
82
80
  const logger = Logger()
83
- const errorText = "this is error"
81
+ const errorText = 'this is error'
84
82
  logger.error(errorText)
85
83
 
86
84
  await waitForFileToHaveContent(allPath)
87
85
 
88
86
  expect(fs.existsSync(allPath)).toBe(true)
89
-
87
+
90
88
  const contents = fs.readFileSync(allPath, 'utf8')
91
89
  expect(contents).toBe(`error: ${errorText}\n`)
92
90
  })
93
91
 
94
92
  it('it can have general file transporters', async () => {
95
- env.USE_LOG_FILES='true'
93
+ env.USE_LOG_FILES = 'true'
96
94
  const errorPath = 'logs/error.log'
97
95
  deleteLogFile(errorPath)
98
96
 
99
97
  expect(fs.existsSync(errorPath)).toBe(false)
100
98
 
101
99
  const logger = Logger()
102
- const errorText = "this is error"
100
+ const errorText = 'this is error'
103
101
  logger.error(errorText)
104
102
 
105
103
  await waitForFileToHaveContent(errorPath)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/node-common",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "coverage": "jest --coverage --forceExit --runInBand",