Derzeit habe ich und express.js Anwendung implementiert und log4js Logger für Protokollierungszwecke hinzugefügt. Jetzt wollte ich Logs in Redis und dann in den Background Worker schreiben, der kontinuierlich Logs aus der Redis-Liste holt und diese Logs in eine lokale Log-Datei schreibt.Aggregieren Sie Protokolle und schreiben Sie später in Dateien, ohne direkt in Dateien zu schreiben
App.js würde so aussehen
import { getLogger, configure } from 'log4js';
import {initServer} from './middleware/Express'
import { initRoutes } from './routes/RouterAggregator';
configure('./src/config/log4js-config.json');
const logger = getLogger("app");
const init =()=> {
logger.info("Initializing Application");
initServer();
initRoutes();
};
und Konfigurationsdatei protokollieren würde wie folgt aussehen.
{
"appenders": [
{
"type": "console",
"layout": {
"type": "pattern",
"pattern": "[%d] [%[%p%]] %c {%x{ln}} - %m",
"tokens": {
"ln" : "loggerFunction()"
}
}
},
{
"type": "dateFile",
"filename": "log/access.log",
"pattern": "-yyyy-MM-dd",
"alwaysIncludePattern": false,
"category": "http",
"layout": {
"type" : "pattern",
"pattern": "[%d] [%p] %c {%x{ln}} - %m",
"tokens": {
"ln" : "loggerFunction()"
}
}
},
{
"type": "dateFile",
"filename": "log/app.log",
"maxLogSize": 10485760,
"numBackups": 3,
"alwaysIncludePattern": false,
"layout": {
"type" : "pattern",
"pattern": "[%d] [%p] %c {%x{ln}} - %m",
"tokens": {
"ln" : "loggerFunction()"
}
}
},
{
"type": "logLevelFilter",
"level": "ERROR",
"appender": {
"type": "file",
"filename": "log/errors.log"
},
"layout": {
"type" : "pattern",
"pattern": "[%d] [%p] %c {%x{ln}} - %m",
"tokens": {
"ln" : "loggerFunction()"
}
}
}
]
}
Ich möchte wissen, wie redis hinzufügen oben genannten Funktionen zu unterstützen.
True, ich fand ein Paket, das Unterstützung für dieses hinzugefügt hat, aber beachten Sie, wie Sie dieses Logstash-Server-Conf konfigurieren, wenn Sie wissen, lassen Sie es mich wissen. Danke für Ihre wertvolle Eingabe https://github.com/beyond5959/log4js-logstash-redis –