Skip to content

Commit 126fa44

Browse files
authored
Adding NodeJs Logging CodeExamples (thombergs#199)
* Adding NodeJs Logging CodeExamples * Adding NodeJs Logging CodeExamples
1 parent b070b33 commit 126fa44

File tree

10 files changed

+178
-0
lines changed

10 files changed

+178
-0
lines changed

nodejs/logging-file/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Node.js Logging: Novice to Expert
2+
3+
### Run `npm install` to get started
4+
5+
To use new Winston Feature
6+
- Switch logger import in logging-via-winston/app.js
7+
`const logger = require("./logger");`
8+
9+
- Example:
10+
11+
To Use winston prettyPrint switch logger import to:
12+
`const logger = require("./logger-prettyPrint.js");`

nodejs/logging-file/app-console.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const express = require("express");
2+
const app = express();
3+
4+
app.get("/", (req, res, next) => {
5+
console.log("debug", "Hello, Winston!");
6+
console.log("The is the home '/' route.");
7+
res.status(200).send("Logging Hello World..");
8+
});
9+
10+
app.get("/event", (req, res, next) => {
11+
try {
12+
throw new Error("Not User!");
13+
} catch (error) {
14+
console.error("Events Error: Unauthenticated user");
15+
res.status(500).send("Error!");
16+
}
17+
});
18+
19+
app.listen(3000, () => {
20+
console.log("Server Listenning On Port 3000");
21+
});
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const express = require("express");
2+
const logger = require("./logger");
3+
const app = express();
4+
5+
app.get("/", (req, res, next) => {
6+
logger.log("debug", "Hello, Winston!");
7+
logger.debug("The is the home '/' route.");
8+
res.status(200).send("Logging Hello World..");
9+
});
10+
11+
app.get("/event", (req, res, next) => {
12+
try {
13+
throw new Error("Not User!");
14+
} catch (error) {
15+
logger.error("Events Error: Unauthenticated user");
16+
res.status(500).send("Error!");
17+
}
18+
});
19+
20+
app.listen(3000, () => {
21+
logger.info("Server Listenning On Port 3000");
22+
});
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const { format, createLogger, transports } = require("winston");
2+
const { combine, label, json } = format;
3+
require("winston-daily-rotate-file");
4+
5+
//Label
6+
const CATEGORY = "Log Rotation";
7+
8+
//DailyRotateFile func()
9+
const fileRotateTransport = new transports.DailyRotateFile({
10+
filename: "logs/rotate-%DATE%.log",
11+
datePattern: "YYYY-MM-DD",
12+
maxFiles: "14d",
13+
});
14+
15+
const logger = createLogger({
16+
level: "debug",
17+
format: combine(label({ label: CATEGORY }), json()),
18+
transports: [fileRotateTransport, new transports.Console()],
19+
});
20+
21+
module.exports = logger;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const { format, createLogger, transports } = require("winston");
2+
const { combine, timestamp, label, printf, prettyPrint } = format;
3+
const CATEGORY = "winston custom format";
4+
5+
const logger = createLogger({
6+
level: "debug",
7+
format: combine(
8+
label({ label: CATEGORY }),
9+
timestamp({
10+
format: "MMM-DD-YYYY HH:mm:ss",
11+
}),
12+
prettyPrint()
13+
),
14+
transports: [
15+
new transports.File({
16+
filename: "logs/example.log",
17+
}),
18+
new transports.File({
19+
level: "error",
20+
filename: "logs/error.log",
21+
}),
22+
new transports.Console(),
23+
],
24+
});
25+
26+
module.exports = logger;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const { format, createLogger, transports } = require("winston");
2+
const { combine, timestamp, label, printf, prettyPrint } = format;
3+
const CATEGORY = "winston custom format";
4+
5+
const logger = createLogger({
6+
level: "debug",
7+
format: combine(
8+
label({ label: CATEGORY }),
9+
timestamp({
10+
format: "MMM-DD-YYYY HH:mm:ss",
11+
}),
12+
prettyPrint()
13+
),
14+
transports: [new transports.Console()],
15+
});
16+
17+
module.exports = logger;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const { format, createLogger, transports } = require("winston");
2+
3+
const { combine, timestamp, label, printf } = format;
4+
const CATEGORY = "winston custom format";
5+
6+
//Using the printf format.
7+
const customFormat = printf(({ level, message, label, timestamp }) => {
8+
return `${timestamp} [${label}] ${level}: ${message}`;
9+
});
10+
11+
const logger = createLogger({
12+
level: "debug",
13+
format: combine(label({ label: CATEGORY }), timestamp(), customFormat),
14+
transports: [new transports.Console()],
15+
});
16+
17+
module.exports = logger;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { createLogger, transports, format } = require("winston");
2+
3+
const logger = createLogger({
4+
level: "debug",
5+
format: format.json(),
6+
//logger method...
7+
transports: [
8+
//new transports:
9+
new transports.File({
10+
filename: "logs/example.log",
11+
}),
12+
],
13+
//...
14+
});
15+
16+
module.exports = logger;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const { createLogger, transports, format } = require("winston");
2+
3+
const logger = createLogger({
4+
level: "debug",
5+
format: format.json(),
6+
transports: [new transports.Console()],
7+
});
8+
9+
module.exports = logger;

nodejs/logging-file/package.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "logging-file",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"keywords": [],
10+
"author": "",
11+
"license": "ISC",
12+
"dependencies": {
13+
"express": "^4.18.1",
14+
"winston": "^3.8.1",
15+
"winston-daily-rotate-file": "^4.7.1"
16+
}
17+
}

0 commit comments

Comments
 (0)