-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
Description
The Issue
I'm trying to use pino-socket as a transport to log to syslog via /dev/log on my Ubuntu 22.04 system using node 18.
import pino from 'pino';
const logger = pino({
level: 'info',
transport: {
targets: [
{
level: 'trace',
target: 'pino-socket',
options: {
unixsocket: '/dev/log',
},
},
{ level: 'trace', target: 'pino-pretty', options: {} },
],
},
});
logger.info(`pino logger instantiated `);
export { logger };Here's the output I see in my console:
[15:46:00.992] INFO (501708): pino logger instantiated
Error: send ECONNREFUSED
at doSend (node:dgram:716:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:464:18)
at afterDns (node:dgram:662:5)
at Socket.send (node:dgram:672:5)
at Writable.write [as _write] (/home/ty/Documents/rtr/rtr-webapps/node_modules/pino-socket/lib/UdpConnection.js:28:16)
at doWrite (node:internal/streams/writable:411:12)
at clearBuffer (node:internal/streams/writable:572:7)
at onwrite (node:internal/streams/writable:464:7)
at processTicksAndRejections (node:internal/process/task_queues:82:21)
And of course no logs show up when I run tail -f /var/log/syslog | grep pino
winston-syslog seems to work
But I would much rather use pino
import { config, createLogger, transports } from 'winston';
import { Syslog, SyslogTransportOptions } from 'winston-syslog';
const opt: SyslogTransportOptions = {
protocol: 'unix',
path: '/dev/log',
facility: 'user',
localhost: '',
app_name: 'my-great-app',
};
const Logger = createLogger({
levels: config.syslog.levels,
transports: [new transports.Console()],
});
const sysLogTransport = new Syslog(opt);
Logger.add(sysLogTransport);
Logger.info(`Logger instantiated `);
export { Logger };I get this line in /var/log/syslog :
May 10 15:59:32 my-ubuntu-4 my-great-app[504122]: {"level":"info","message":"Logger instantiated "}
The Ask
I'm sure I'm doing something wrong. Could you please provide an example?