pinojs / pino

🌲 super fast, all natural json logger
http://getpino.io
MIT License
14.21k stars 875 forks source link

msg property is not logged when first arg is undefined #1555

Closed denneulin closed 2 years ago

denneulin commented 2 years ago

In node.js (tested in 14 and 16), logs do not contain the msg property when the first parameter is undefined.

The following code

const logger = require("pino")();

logger.info("hello world");
logger.info({ a: 1 }, "hello world");
logger.info(null, "hello world");
logger.info(undefined, "hello world");

const child = logger.child({ a: "im a child" });
child.info({ a: 1 }, "hello daddy");
child.info(null, "hello daddy");
child.info(undefined, "hello daddy");

logs the following content (hostname has been changed 😉 ):

{"level":30,"time":1663063554791,"pid":43360,"hostname":"...","msg":"hello world"}
{"level":30,"time":1663063554791,"pid":43360,"hostname":"...","a":1,"msg":"hello world"}
{"level":30,"time":1663063554791,"pid":43360,"hostname":"...","msg":"hello world"}
{"level":30,"time":1663063554791,"pid":43360,"hostname":"..."}
{"level":30,"time":1663063554791,"pid":43360,"hostname":"...","a":"im a child","a":1,"msg":"hello daddy"}
{"level":30,"time":1663063554791,"pid":43360,"hostname":"...","a":"im a child","msg":"hello daddy"}
{"level":30,"time":1663063554791,"pid":43360,"hostname":"...","a":"im a child"}

We can see the 4th log of both main logger and child logger does not have a msg property whereas it is ok when the first parameter is null.

However, it seems to be ok in the browser. Tested here : https://codesandbox.io/s/js-playground-forked-qsnm99?file=/src/index.js

mcollina commented 2 years ago

Thanks for reporting! Would you like to send a Pull Request to address this issue? Remember to add unit tests.

github-actions[bot] commented 1 year ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.