Adding NodeJs Logging CodeExamples (#199)

* Adding NodeJs Logging CodeExamples

* Adding NodeJs Logging CodeExamples
This commit is contained in:
Olaoluwa Ajibade
2022-07-25 00:51:25 +01:00
committed by GitHub
parent b070b3376b
commit 126fa44d97
10 changed files with 178 additions and 0 deletions

View 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");`

View 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");
});

View 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");
});

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View 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;

View 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;

View 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;

View 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"
}
}