Skip to content

Commit a73e49f

Browse files
author
Matija Petrunic
committed
Log to stdout and file if log file env not null
1 parent b741a8c commit a73e49f

File tree

3 files changed

+33
-13
lines changed

3 files changed

+33
-13
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
"pg": "^8.6.0",
5454
"pg-native": "^3.0.0",
5555
"pino": "^6.11.3",
56+
"pino-multi-stream": "^5.3.0",
5657
"pino-pretty": "^5.0.1",
5758
"typeorm": "^0.2.32",
5859
"typeorm-seeding": "^1.6.1"
@@ -64,6 +65,7 @@
6465
"@types/node": "^14.14.22",
6566
"@types/node-cleanup": "^2.1.1",
6667
"@types/pino": "^6.3.8",
68+
"@types/pino-multi-stream": "^5.1.1",
6769
"@types/pino-pretty": "^4.7.0",
6870
"@types/sinon": "^9.0.10",
6971
"@types/supertest": "^2.0.10",

src/services/logger/index.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
import pino from "pino";
1+
import fs from "fs";
22

3-
export let logger: pino.Logger;
3+
import pinoms, { prettyStream } from "pino-multi-stream";
4+
5+
const streams: pinoms.Streams = [
6+
{
7+
level: (process.env.LOG_LEVEL as pinoms.Level) || "debug",
8+
stream: prettyStream({
9+
dest: process.stdout,
10+
}),
11+
},
12+
];
413

514
if (process.env.LOG_FILE) {
6-
logger = pino({
7-
level: process.env.LOG_LEVEL || "debug",
15+
streams.push({
16+
level: (process.env.LOG_LEVEL as pinoms.Level) || "debug",
17+
stream: fs.createWriteStream(process.env.LOG_FILE),
818
});
9-
} else {
10-
logger = pino(
11-
{
12-
level: process.env.LOG_LEVEL || "debug",
13-
prettyPrint: true,
14-
},
15-
process.stdout
16-
);
1719
}
20+
21+
export const logger = pinoms({ streams });

yarn.lock

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,13 @@
407407
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08"
408408
integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==
409409

410+
"@types/pino-multi-stream@^5.1.1":
411+
version "5.1.1"
412+
resolved "https://registry.yarnpkg.com/@types/pino-multi-stream/-/pino-multi-stream-5.1.1.tgz#8d5bc607357324621667c8a5613d4a534c075d0f"
413+
integrity sha512-juOdSxwfE5TFKJJlq/VzXxTRyO+9yI9RZoyh/CYnof8MvqM+aUSUP1ZXGTuOZe7qgQnGp8xr8NHU2O/rTrYysA==
414+
dependencies:
415+
"@types/pino" "*"
416+
410417
"@types/pino-pretty@*", "@types/pino-pretty@^4.7.0":
411418
version "4.7.0"
412419
resolved "https://registry.yarnpkg.com/@types/pino-pretty/-/pino-pretty-4.7.0.tgz#e4a18541f8464d1cc48216f5593cc6a0e62dc2c3"
@@ -3745,6 +3752,13 @@ pify@^2.0.0:
37453752
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
37463753
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
37473754

3755+
pino-multi-stream@^5.3.0:
3756+
version "5.3.0"
3757+
resolved "https://registry.yarnpkg.com/pino-multi-stream/-/pino-multi-stream-5.3.0.tgz#2816ec4422c7e37e676a210a1705c7155506afd4"
3758+
integrity sha512-4fAGCRll18I+JmoAbxDvU9zc5sera/3c+VgTtUdoNMOZ/VSHB+HMAYtixKpeRmZTDHDDdE2rtwjVkuwWB8mYQA==
3759+
dependencies:
3760+
pino "^6.0.0"
3761+
37483762
pino-pretty@^5.0.1:
37493763
version "5.0.1"
37503764
resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-5.0.1.tgz#2cbdf1d743d97df3f0a9dd41cf440274ec770082"
@@ -3769,7 +3783,7 @@ pino-std-serializers@^3.1.0:
37693783
resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671"
37703784
integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==
37713785

3772-
pino@^6.11.3:
3786+
pino@^6.0.0, pino@^6.11.3:
37733787
version "6.11.3"
37743788
resolved "https://registry.yarnpkg.com/pino/-/pino-6.11.3.tgz#0c02eec6029d25e6794fdb6bbea367247d74bc29"
37753789
integrity sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==

0 commit comments

Comments
 (0)