fluent / fluent/fluent-logger-node

fluentd winston color formatting doesnt work at transport level

Open
#172 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
258
Forks
82
PR merge metrics
No merged PRs in 30d

Description

Hey folks

I apologise in advance ive read previous issues and stack overflow about this and cant seem to find a resolution. Ive even tried resorting to injecting a fluend plugin to remove color formatting before logs are sent to elasticsearch, this is clearly not best practice, it shouldnt be necessary to send something and then remove it i think.

If i remove the loggers format property the transport formats dont have any effect
See below (i am caching levels warn and above in a local directory)
```
import { createLogger, format, transports, addColors } from "winston";
var fluentLogger = require("fluent-logger");

const winstonTransportConfigFactory = type => {
addColors({
error: "red",
warn: "yellow",
info: "cyan",
debug: "green"
});
if (type === "file")
return {
//store warn and above locally
filename: "./logs/local.log",
level: "warn",
format: format.json(),
colorize: false
};
if (type === "console")
return {
format: format.combine(format.simple(), format.colorize()),
colorize: true
};
if (type === "fluentd")
return {
format: format.json(),
colorize: false
};
};

const fluent = new (fluentLogger.support.winstonTransport(
winstonTransportConfigFactory("fluentd")
))("agronomy-api.test", {
host: "localhost",
port: 24224,
timeout: 3.0,
requireAckResponse: true
});

const logger = createLogger({
level: "debug",
exitOnError: false,
format: format.combine(format.simple(), format.colorize()),
transports: [
new transports.Console(winstonTransportConfigFactory("console")),
new transports.File(winstonTransportConfigFactory("file")),
fluent
]
});

logger.on("flush", () => {
console.log("Flush");
});

logger.on("finish", () => {
console.log(`Finish: ${fluent.sender}`);
fluent.sender.end("end", {}, () => {});
});

export default logger;
```

I have used colorize as well as running the fomat.colorize function as there are mixed messages floating around about this i wasnt clear on how to do this and figured it wouldnt do any harm to overwrite this property if it did already exist?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.