From b9fe613a99296dcc0f1957e13ca6279e2d9deca9 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 8 Apr 2020 21:28:07 +0900 Subject: [PATCH 01/12] first wrote roughly logging module --- log.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 log.js diff --git a/log.js b/log.js new file mode 100644 index 00000000..8b8ca584 --- /dev/null +++ b/log.js @@ -0,0 +1,14 @@ +const winston = require('winston') + +const logger = winston.createLogger({ + transports : [ + new winston.transports.Console() + ] +}) + +logger.info('What rolls down stairs'); +logger.info('alone or in pairs,'); +logger.info('and over your neighbors dog?'); +logger.warn('Whats great for a snack,'); +logger.info('And fits on your back?'); +logger.error('Its log, log, log'); \ No newline at end of file From f96e5e461608f10e3f4c25ff9e569e74c646ad1d Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 8 Apr 2020 23:14:42 +0900 Subject: [PATCH 02/12] add filename in logs --- log.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/log.js b/log.js index 8b8ca584..91ff91be 100644 --- a/log.js +++ b/log.js @@ -4,11 +4,20 @@ const logger = winston.createLogger({ transports : [ new winston.transports.Console() ] -}) +}) -logger.info('What rolls down stairs'); -logger.info('alone or in pairs,'); -logger.info('and over your neighbors dog?'); -logger.warn('Whats great for a snack,'); -logger.info('And fits on your back?'); -logger.error('Its log, log, log'); \ No newline at end of file +const output = (file) => { + const obj = {} + obj.log = (str) => { + logger.info(`${file}: ${str}`) + } + obj.warn = (str) => { + logger.warn(`${file}: ${str}`) + } + obj.error = (str) => { + logger.error(`${file}: ${str}`) + } + return obj +} + +module.exports = output \ No newline at end of file From 19ab53c256de40775ec7c6581da824454c4fc0d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Apr 2020 07:58:54 +0900 Subject: [PATCH 03/12] I'll look these on the bus going to work --- log.test.js | 5 +++++ logTutorial.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 log.test.js create mode 100644 logTutorial.js diff --git a/log.test.js b/log.test.js new file mode 100644 index 00000000..1a286fdc --- /dev/null +++ b/log.test.js @@ -0,0 +1,5 @@ +const logger = require('./logTutorial')(__filename) + +logger.error('There is an error :(') +logger.warn('Warnning!!') +logger.log('normal thing to say') \ No newline at end of file diff --git a/logTutorial.js b/logTutorial.js new file mode 100644 index 00000000..1d3c9538 --- /dev/null +++ b/logTutorial.js @@ -0,0 +1,43 @@ +'use strict'; +const { createLogger, format, transports } = require('winston'); +// require('winston-daily-rotate-file'); +const fs = require('fs'); +const path = require('path'); +const logDir = '/codeforge/log'; + +const dailyRotateFileTransport = filename => new transports.DailyRotateFile({ + filename: `${logDir}/%DATE%-${filename}.log`, + maxSize: "1g", + maxDays: "3d", + zippedArchive: true, + datePattern: 'YYYY-MM-DD' +}); + +const logger = function(filename){ + return createLogger({ + // change level if in dev environment versus production + level: 'debug', + maxsize: '500m', + format: format.combine( + format.timestamp({ + format: 'YYYY-MM-DD HH:mm:ss' + }), + // for the log file + format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`) + ), + transports: [ + new transports.Console({ + level: 'info', + format: format.combine( + format.colorize(), + format.printf( + info => `${info.message}` + ) + ) + }), + dailyRotateFileTransport(filename) + ] + }); +} + +module.exports = logger // is now a function \ No newline at end of file From 5992dfacbd310bf6573f272c76f5a757b17b1753 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Apr 2020 22:18:17 +0900 Subject: [PATCH 04/12] moved logging module to lib folder --- lib/log.js | 23 +++++++++++++++++++++++ lib/log.test.js | 5 +++++ 2 files changed, 28 insertions(+) create mode 100644 lib/log.js create mode 100644 lib/log.test.js diff --git a/lib/log.js b/lib/log.js new file mode 100644 index 00000000..91ff91be --- /dev/null +++ b/lib/log.js @@ -0,0 +1,23 @@ +const winston = require('winston') + +const logger = winston.createLogger({ + transports : [ + new winston.transports.Console() + ] +}) + +const output = (file) => { + const obj = {} + obj.log = (str) => { + logger.info(`${file}: ${str}`) + } + obj.warn = (str) => { + logger.warn(`${file}: ${str}`) + } + obj.error = (str) => { + logger.error(`${file}: ${str}`) + } + return obj +} + +module.exports = output \ No newline at end of file diff --git a/lib/log.test.js b/lib/log.test.js new file mode 100644 index 00000000..1a286fdc --- /dev/null +++ b/lib/log.test.js @@ -0,0 +1,5 @@ +const logger = require('./logTutorial')(__filename) + +logger.error('There is an error :(') +logger.warn('Warnning!!') +logger.log('normal thing to say') \ No newline at end of file From 3b80f6c47e76a5f8c91d969038806382d8fad79c Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Apr 2020 22:19:39 +0900 Subject: [PATCH 05/12] removed leftover --- log.js | 23 ----------------------- log.test.js | 5 ----- logTutorial.js | 43 ------------------------------------------- 3 files changed, 71 deletions(-) delete mode 100644 log.js delete mode 100644 log.test.js delete mode 100644 logTutorial.js diff --git a/log.js b/log.js deleted file mode 100644 index 91ff91be..00000000 --- a/log.js +++ /dev/null @@ -1,23 +0,0 @@ -const winston = require('winston') - -const logger = winston.createLogger({ - transports : [ - new winston.transports.Console() - ] -}) - -const output = (file) => { - const obj = {} - obj.log = (str) => { - logger.info(`${file}: ${str}`) - } - obj.warn = (str) => { - logger.warn(`${file}: ${str}`) - } - obj.error = (str) => { - logger.error(`${file}: ${str}`) - } - return obj -} - -module.exports = output \ No newline at end of file diff --git a/log.test.js b/log.test.js deleted file mode 100644 index 1a286fdc..00000000 --- a/log.test.js +++ /dev/null @@ -1,5 +0,0 @@ -const logger = require('./logTutorial')(__filename) - -logger.error('There is an error :(') -logger.warn('Warnning!!') -logger.log('normal thing to say') \ No newline at end of file diff --git a/logTutorial.js b/logTutorial.js deleted file mode 100644 index 1d3c9538..00000000 --- a/logTutorial.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; -const { createLogger, format, transports } = require('winston'); -// require('winston-daily-rotate-file'); -const fs = require('fs'); -const path = require('path'); -const logDir = '/codeforge/log'; - -const dailyRotateFileTransport = filename => new transports.DailyRotateFile({ - filename: `${logDir}/%DATE%-${filename}.log`, - maxSize: "1g", - maxDays: "3d", - zippedArchive: true, - datePattern: 'YYYY-MM-DD' -}); - -const logger = function(filename){ - return createLogger({ - // change level if in dev environment versus production - level: 'debug', - maxsize: '500m', - format: format.combine( - format.timestamp({ - format: 'YYYY-MM-DD HH:mm:ss' - }), - // for the log file - format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`) - ), - transports: [ - new transports.Console({ - level: 'info', - format: format.combine( - format.colorize(), - format.printf( - info => `${info.message}` - ) - ) - }), - dailyRotateFileTransport(filename) - ] - }); -} - -module.exports = logger // is now a function \ No newline at end of file From 891b9f726cf6a5aedb0644adf439a247ae71fd74 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Apr 2020 22:27:05 +0900 Subject: [PATCH 06/12] added package.json --- package-lock.json | 269 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 25 +++++ 2 files changed, 294 insertions(+) create mode 100644 package-lock.json create mode 100644 package.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..ee8259a9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,269 @@ +{ + "name": "databases", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", + "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colornames": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", + "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "colorspace": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", + "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "requires": { + "color": "3.0.x", + "text-hex": "1.0.x" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "diagnostics": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", + "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", + "requires": { + "colorspace": "1.1.x", + "enabled": "1.0.x", + "kuler": "1.0.x" + } + }, + "enabled": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", + "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", + "requires": { + "env-variable": "0.0.x" + } + }, + "env-variable": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", + "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fecha": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", + "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "kuler": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz", + "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==", + "requires": { + "colornames": "^1.1.1" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "logform": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz", + "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==", + "requires": { + "colors": "^1.2.1", + "fast-safe-stringify": "^2.0.4", + "fecha": "^2.3.3", + "ms": "^2.1.1", + "triple-beam": "^1.3.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "one-time": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", + "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "winston": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz", + "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==", + "requires": { + "async": "^2.6.1", + "diagnostics": "^1.1.1", + "is-stream": "^1.1.0", + "logform": "^2.1.1", + "one-time": "0.0.4", + "readable-stream": "^3.1.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.3.0" + } + }, + "winston-transport": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz", + "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==", + "requires": { + "readable-stream": "^2.3.6", + "triple-beam": "^1.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..f1af1332 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "databases", + "version": "1.0.0", + "description": "", + "main": "index.js", + "directories": { + "lib": "lib" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/kimong1/databases.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/kimong1/databases/issues" + }, + "homepage": "https://github.com/kimong1/databases#readme", + "dependencies": { + "winston": "^3.2.1" + } +} From 096f918af5be300e7ae227016ecef6902130fe14 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 13 Apr 2020 22:05:43 +0900 Subject: [PATCH 07/12] fixed logging module --- lib/log.js | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/log.js b/lib/log.js index 91ff91be..5169ddf0 100644 --- a/lib/log.js +++ b/lib/log.js @@ -1,23 +1,23 @@ -const winston = require('winston') +const {createLogger, format, transports} = require('winston') -const logger = winston.createLogger({ - transports : [ - new winston.transports.Console() - ] -}) - -const output = (file) => { - const obj = {} - obj.log = (str) => { - logger.info(`${file}: ${str}`) - } - obj.warn = (str) => { - logger.warn(`${file}: ${str}`) - } - obj.error = (str) => { - logger.error(`${file}: ${str}`) - } - return obj -} - -module.exports = output \ No newline at end of file +module.exports = (file) => { + const logger = createLogger({ + format: format.combine( + format.label({ + label: file + }), + format.colorize(), + format.printf( + info => ` + LEVEL: ${info.level} + FILENAME: ${info.label} + MESSAGE: ${info.message} +` + ) + ), + transports : [ + new transports.Console() + ] + }) + return logger +} \ No newline at end of file From 5542010c96198b4cc42dddeefc81abf9fc24bbab Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 13 Apr 2020 23:09:43 +0900 Subject: [PATCH 08/12] first wrote roughly log.test.js(not working yet) --- lib/log.test.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/log.test.js b/lib/log.test.js index 1a286fdc..93eaf01f 100644 --- a/lib/log.test.js +++ b/lib/log.test.js @@ -1,5 +1,24 @@ -const logger = require('./logTutorial')(__filename) +const {createLogger, format, transports} = require('winston') +const logger = require('./log')(__filename) -logger.error('There is an error :(') -logger.warn('Warnning!!') -logger.log('normal thing to say') \ No newline at end of file +describe('Testing log.js', () => { + beforeEach(() => { + jest.clearAllMocks() + }) + + let mockedConsoleLogOutput = '' + console.log = (input) => { + mockedConsoleLogOutput = input + } + + it('should console.log error level message correctly', () => { + logger.error('test message for error') + expect(mockedConsoleLogOutput).toEqual( + ` + LEVEL: error + FILENAME: ${__filename} + MESSAGE: test message for error +` + ) + }) +}) \ No newline at end of file From 82825a4191b515a97c1cdf2130aa870db1ff0499 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 14 Apr 2020 08:57:04 +0900 Subject: [PATCH 09/12] added timestamp and changed its format to standard one --- lib/log.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/log.js b/lib/log.js index 5169ddf0..a6ae987a 100644 --- a/lib/log.js +++ b/lib/log.js @@ -3,16 +3,13 @@ const {createLogger, format, transports} = require('winston') module.exports = (file) => { const logger = createLogger({ format: format.combine( + format.timestamp({format:'YYYY-MM-DD HH:mm:ss'}), format.label({ label: file }), format.colorize(), format.printf( - info => ` - LEVEL: ${info.level} - FILENAME: ${info.label} - MESSAGE: ${info.message} -` + info => `${info.timestamp} ${info.level} [${info.label}]: ${info.message}` ) ), transports : [ From 8b90b71b5a9ad5c415b359526466e7121903b910 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 14 Apr 2020 22:04:02 +0900 Subject: [PATCH 10/12] fixing log.test.js is on progress --- lib/log.test.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/lib/log.test.js b/lib/log.test.js index 93eaf01f..9464a83d 100644 --- a/lib/log.test.js +++ b/lib/log.test.js @@ -1,24 +1,21 @@ -const {createLogger, format, transports} = require('winston') +jest.mock('winston') +const {createLogger} = require('winston') const logger = require('./log')(__filename) describe('Testing log.js', () => { beforeEach(() => { jest.clearAllMocks() }) - - let mockedConsoleLogOutput = '' - console.log = (input) => { - mockedConsoleLogOutput = input - } - - it('should console.log error level message correctly', () => { + it('should call createLogger when logger.error is called', () => { logger.error('test message for error') - expect(mockedConsoleLogOutput).toEqual( - ` - LEVEL: error - FILENAME: ${__filename} - MESSAGE: test message for error -` - ) + expect(createLogger).toHaveBeenCalledTimes(1) + }) + it('should call createLogger when logger.info is called', () => { + logger.warn('test message for warn') + expect(createLogger).toHaveBeenCalledTimes(1) + }) + it('should call createLogger when logger.info is called', () => { + logger.info('test message for info') + expect(createLogger).toHaveBeenCalledTimes(1) }) }) \ No newline at end of file From 590fee57b5ac65bdc3d5856d3379f454e9637796 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 14 Apr 2020 22:56:31 +0900 Subject: [PATCH 11/12] It says createLogger is not a mock. Why? --- lib/log.test.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/log.test.js b/lib/log.test.js index 9464a83d..4af7a019 100644 --- a/lib/log.test.js +++ b/lib/log.test.js @@ -1,5 +1,7 @@ jest.mock('winston') const {createLogger} = require('winston') +jest.unmock('winston') +const {format, transports} = require('winston') const logger = require('./log')(__filename) describe('Testing log.js', () => { @@ -8,14 +10,14 @@ describe('Testing log.js', () => { }) it('should call createLogger when logger.error is called', () => { logger.error('test message for error') - expect(createLogger).toHaveBeenCalledTimes(1) + expect(createLogger).toHaveBeenCalled() }) - it('should call createLogger when logger.info is called', () => { + it('should call createLogger when logger.warn is called', () => { logger.warn('test message for warn') - expect(createLogger).toHaveBeenCalledTimes(1) + expect(createLogger).toHaveBeenCalled() }) it('should call createLogger when logger.info is called', () => { logger.info('test message for info') - expect(createLogger).toHaveBeenCalledTimes(1) + expect(createLogger).toHaveBeenCalled() }) }) \ No newline at end of file From ddfcebc6f1fb2efd664e53ca3f38d57d665e0813 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 15 Apr 2020 08:18:38 +0900 Subject: [PATCH 12/12] fixed log.test.js and it works now --- lib/log.test.js | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/log.test.js b/lib/log.test.js index 4af7a019..74f157b8 100644 --- a/lib/log.test.js +++ b/lib/log.test.js @@ -1,23 +1,27 @@ jest.mock('winston') -const {createLogger} = require('winston') -jest.unmock('winston') -const {format, transports} = require('winston') -const logger = require('./log')(__filename) +const winston = require('winston') +winston.createLogger = jest.fn().mockImplementation(() => { + return { + error: () => {}, + warn: () => {}, + info: () => {} + } +}) +winston.format = { + combine: () => {}, + timestamp: () => {}, + label: () => {}, + colorize: () => {}, + printf: () => {} +} +winston.transports.Console = function(){} describe('Testing log.js', () => { beforeEach(() => { jest.clearAllMocks() }) - it('should call createLogger when logger.error is called', () => { - logger.error('test message for error') - expect(createLogger).toHaveBeenCalled() - }) - it('should call createLogger when logger.warn is called', () => { - logger.warn('test message for warn') - expect(createLogger).toHaveBeenCalled() - }) - it('should call createLogger when logger.info is called', () => { - logger.info('test message for info') - expect(createLogger).toHaveBeenCalled() + it('should call winston.createLogger when log is required', () => { + const logger = require('./log')(__filename) + expect(winston.createLogger).toHaveBeenCalled() }) }) \ No newline at end of file