Adding NodeJs Logging CodeExamples (#199)
* Adding NodeJs Logging CodeExamples * Adding NodeJs Logging CodeExamples
This commit is contained in:
12
nodejs/logging-file/README.md
Normal file
12
nodejs/logging-file/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Node.js Logging: Novice to Expert
|
||||
|
||||
### Run `npm install` to get started
|
||||
|
||||
To use new Winston Feature
|
||||
- Switch logger import in logging-via-winston/app.js
|
||||
`const logger = require("./logger");`
|
||||
|
||||
- Example:
|
||||
|
||||
To Use winston prettyPrint switch logger import to:
|
||||
`const logger = require("./logger-prettyPrint.js");`
|
||||
21
nodejs/logging-file/app-console.js
Normal file
21
nodejs/logging-file/app-console.js
Normal file
@@ -0,0 +1,21 @@
|
||||
const express = require("express");
|
||||
const app = express();
|
||||
|
||||
app.get("/", (req, res, next) => {
|
||||
console.log("debug", "Hello, Winston!");
|
||||
console.log("The is the home '/' route.");
|
||||
res.status(200).send("Logging Hello World..");
|
||||
});
|
||||
|
||||
app.get("/event", (req, res, next) => {
|
||||
try {
|
||||
throw new Error("Not User!");
|
||||
} catch (error) {
|
||||
console.error("Events Error: Unauthenticated user");
|
||||
res.status(500).send("Error!");
|
||||
}
|
||||
});
|
||||
|
||||
app.listen(3000, () => {
|
||||
console.log("Server Listenning On Port 3000");
|
||||
});
|
||||
22
nodejs/logging-file/logging-via-winston/app.js
Normal file
22
nodejs/logging-file/logging-via-winston/app.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const express = require("express");
|
||||
const logger = require("./logger");
|
||||
const app = express();
|
||||
|
||||
app.get("/", (req, res, next) => {
|
||||
logger.log("debug", "Hello, Winston!");
|
||||
logger.debug("The is the home '/' route.");
|
||||
res.status(200).send("Logging Hello World..");
|
||||
});
|
||||
|
||||
app.get("/event", (req, res, next) => {
|
||||
try {
|
||||
throw new Error("Not User!");
|
||||
} catch (error) {
|
||||
logger.error("Events Error: Unauthenticated user");
|
||||
res.status(500).send("Error!");
|
||||
}
|
||||
});
|
||||
|
||||
app.listen(3000, () => {
|
||||
logger.info("Server Listenning On Port 3000");
|
||||
});
|
||||
@@ -0,0 +1,21 @@
|
||||
const { format, createLogger, transports } = require("winston");
|
||||
const { combine, label, json } = format;
|
||||
require("winston-daily-rotate-file");
|
||||
|
||||
//Label
|
||||
const CATEGORY = "Log Rotation";
|
||||
|
||||
//DailyRotateFile func()
|
||||
const fileRotateTransport = new transports.DailyRotateFile({
|
||||
filename: "logs/rotate-%DATE%.log",
|
||||
datePattern: "YYYY-MM-DD",
|
||||
maxFiles: "14d",
|
||||
});
|
||||
|
||||
const logger = createLogger({
|
||||
level: "debug",
|
||||
format: combine(label({ label: CATEGORY }), json()),
|
||||
transports: [fileRotateTransport, new transports.Console()],
|
||||
});
|
||||
|
||||
module.exports = logger;
|
||||
@@ -0,0 +1,26 @@
|
||||
const { format, createLogger, transports } = require("winston");
|
||||
const { combine, timestamp, label, printf, prettyPrint } = format;
|
||||
const CATEGORY = "winston custom format";
|
||||
|
||||
const logger = createLogger({
|
||||
level: "debug",
|
||||
format: combine(
|
||||
label({ label: CATEGORY }),
|
||||
timestamp({
|
||||
format: "MMM-DD-YYYY HH:mm:ss",
|
||||
}),
|
||||
prettyPrint()
|
||||
),
|
||||
transports: [
|
||||
new transports.File({
|
||||
filename: "logs/example.log",
|
||||
}),
|
||||
new transports.File({
|
||||
level: "error",
|
||||
filename: "logs/error.log",
|
||||
}),
|
||||
new transports.Console(),
|
||||
],
|
||||
});
|
||||
|
||||
module.exports = logger;
|
||||
@@ -0,0 +1,17 @@
|
||||
const { format, createLogger, transports } = require("winston");
|
||||
const { combine, timestamp, label, printf, prettyPrint } = format;
|
||||
const CATEGORY = "winston custom format";
|
||||
|
||||
const logger = createLogger({
|
||||
level: "debug",
|
||||
format: combine(
|
||||
label({ label: CATEGORY }),
|
||||
timestamp({
|
||||
format: "MMM-DD-YYYY HH:mm:ss",
|
||||
}),
|
||||
prettyPrint()
|
||||
),
|
||||
transports: [new transports.Console()],
|
||||
});
|
||||
|
||||
module.exports = logger;
|
||||
17
nodejs/logging-file/logging-via-winston/logger-printf.js
Normal file
17
nodejs/logging-file/logging-via-winston/logger-printf.js
Normal file
@@ -0,0 +1,17 @@
|
||||
const { format, createLogger, transports } = require("winston");
|
||||
|
||||
const { combine, timestamp, label, printf } = format;
|
||||
const CATEGORY = "winston custom format";
|
||||
|
||||
//Using the printf format.
|
||||
const customFormat = printf(({ level, message, label, timestamp }) => {
|
||||
return `${timestamp} [${label}] ${level}: ${message}`;
|
||||
});
|
||||
|
||||
const logger = createLogger({
|
||||
level: "debug",
|
||||
format: combine(label({ label: CATEGORY }), timestamp(), customFormat),
|
||||
transports: [new transports.Console()],
|
||||
});
|
||||
|
||||
module.exports = logger;
|
||||
16
nodejs/logging-file/logging-via-winston/logger-transport.js
Normal file
16
nodejs/logging-file/logging-via-winston/logger-transport.js
Normal file
@@ -0,0 +1,16 @@
|
||||
const { createLogger, transports, format } = require("winston");
|
||||
|
||||
const logger = createLogger({
|
||||
level: "debug",
|
||||
format: format.json(),
|
||||
//logger method...
|
||||
transports: [
|
||||
//new transports:
|
||||
new transports.File({
|
||||
filename: "logs/example.log",
|
||||
}),
|
||||
],
|
||||
//...
|
||||
});
|
||||
|
||||
module.exports = logger;
|
||||
9
nodejs/logging-file/logging-via-winston/logger.js
Normal file
9
nodejs/logging-file/logging-via-winston/logger.js
Normal file
@@ -0,0 +1,9 @@
|
||||
const { createLogger, transports, format } = require("winston");
|
||||
|
||||
const logger = createLogger({
|
||||
level: "debug",
|
||||
format: format.json(),
|
||||
transports: [new transports.Console()],
|
||||
});
|
||||
|
||||
module.exports = logger;
|
||||
17
nodejs/logging-file/package.json
Normal file
17
nodejs/logging-file/package.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "logging-file",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"express": "^4.18.1",
|
||||
"winston": "^3.8.1",
|
||||
"winston-daily-rotate-file": "^4.7.1"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user