@trojs/logger 0.4.5 → 0.5.0

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/README.md CHANGED
@@ -97,3 +97,4 @@ More info:
97
97
 
98
98
  * level (default: trace)
99
99
  * debug (default: false, stacktrace in console)
100
+ * format (default: simple, also possible to set to json which is useful for different log systems)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@trojs/logger",
3
3
  "description": "Winston logger for TroJS",
4
- "version": "0.4.5",
4
+ "version": "0.5.0",
5
5
  "author": {
6
6
  "name": "Pieter Wigboldus",
7
7
  "url": "https://trojs.org/"
package/src/logger.js CHANGED
@@ -1,6 +1,12 @@
1
1
  import winston from 'winston';
2
2
  import makeLoggers from './loggers/index.js';
3
3
 
4
+ /**
5
+ * @typedef {import('./models/schemas/logger.js').Logger} LoggerType
6
+ * @typedef {import('./models/enums/level.js').LevelType} LevelType
7
+ */
8
+
9
+ /** @type {LoggerType[]} */
4
10
  const defaultLoggers = [
5
11
  {
6
12
  type: 'console',
@@ -19,7 +25,7 @@ const levels = {
19
25
  /**
20
26
  * Create the logger
21
27
  * @param {object} config
22
- * @param {Array=} config.loggers
28
+ * @param {LoggerType=} config.loggers
23
29
  * @param {string?=} config.level
24
30
  * @param {object?=} config.meta
25
31
  * @returns {winston.Logger}
@@ -5,12 +5,15 @@ export default ({ winston, logger }) => {
5
5
 
6
6
  return new winston.transports.Console({
7
7
  level: logger?.level || defaultLevel,
8
- format: winston.format.combine(
9
- winston.format.errors({ stack: logger?.debug ?? false }),
10
- winston.format(
11
- stackDriver({ level: logger?.level, defaultLevel })
12
- )(),
13
- winston.format.json()
14
- ),
8
+ format:
9
+ logger.format === 'json'
10
+ ? winston.format.combine(
11
+ winston.format.errors({ stack: logger?.debug ?? false }),
12
+ winston.format(
13
+ stackDriver({ level: logger?.level, defaultLevel })
14
+ )(),
15
+ winston.format.json()
16
+ )
17
+ : undefined,
15
18
  });
16
19
  };
@@ -12,6 +12,18 @@ const winstonLoggers = {
12
12
  console: makeConsoleLogger,
13
13
  };
14
14
 
15
+ /**
16
+ * @typedef {import('../models/schemas/logger.js').Logger} LoggerType
17
+ * @typedef {import('winston-transport').TransportStreamOptions} TransportStream
18
+ */
19
+
20
+ /**
21
+ * Create all loggers
22
+ * @param {object} opts
23
+ * @param {object} opts.winston
24
+ * @param {LoggerType[]} opts.loggers
25
+ * @returns {TransportStream[]}
26
+ */
15
27
  const makeLoggers = ({ winston, loggers }) =>
16
28
  Logger.createAll(loggers).map((logger) => {
17
29
  const loggerFn = winstonLoggers[logger.type];
@@ -6,9 +6,6 @@ import LoggerMutator from './mutators/logger.js';
6
6
  * @typedef {import('./schemas/logger.js').Logger} LoggerType
7
7
  */
8
8
 
9
- /**
10
- * @type {LoggerType}
11
- */
12
9
  const LoggerObject = Obj({ schema: loggerSchema });
13
10
 
14
11
  export default class Logger {
@@ -8,16 +8,17 @@ import Level from '../enums/level.js';
8
8
  * The logger object
9
9
  * @typedef {object} Logger
10
10
  * @property {string} type
11
- * @property {string?} location
12
- * @property {LevelType?} level
13
- * @property {string?} key
14
- * @property {object?} credentials
15
- * @property {string?} environment
16
- * @property {string?} serverName
17
- * @property {string?} release
18
- * @property {boolean?} debug
19
- * @property {number?} sampleRate
20
- * @property {number?} tracesSampleRate
11
+ * @property {string=} location
12
+ * @property {LevelType=} level
13
+ * @property {string=} key
14
+ * @property {object=} credentials
15
+ * @property {string=} environment
16
+ * @property {string=} serverName
17
+ * @property {string=} release
18
+ * @property {boolean=} debug
19
+ * @property {number=} sampleRate
20
+ * @property {number=} tracesSampleRate
21
+ * @property {string=} format
21
22
  */
22
23
 
23
24
  export default {
@@ -32,4 +33,5 @@ export default {
32
33
  'debug?': Boolean,
33
34
  'sampleRate?': Number,
34
35
  'tracesSampleRate?': Number,
36
+ 'format?': String,
35
37
  };