現在、nodejs のコンテキストでのログ記録について学習しています。現在、私のセットアップでは、morgan をエクスプレス ミドルウェアとして使用し、winston をロギングとして使用しています。私の質問は、morgan が使用するロギングのレベルはどれくらいですか? これはこれまでの私の appjs です。ログを分割する方法を決定しようとしています。
import bodyParser from "body-parser";
import express from "express";
import helmet from "helmet";
import morgan from "morgan";
import path from "path";
import { logger, stream } from "./utils/logger";
import es from "./esClient";
const app = express();
app.use(helmet());
app.use(morgan("combined", { stream }));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
export default app;
これは私がインポートしたロガーファイルです
import winston from "winston";
import path from "path";
winston.emitErrs = true;
const logger = new winston.Logger({
transports: [
new winston.transports.File({
level: "info",
name: "info",
filename: path.join(__dirname,"..","..","logs/access.log"),
json: true,
maxsize: 5242880, //5MB
maxFiles: 5,
colorize: true
}),
new winston.transports.File({
level: "verbose",
name: "elasticsearch",
filename: path.join(__dirname,"..","..","logs/elasticsearch.log"),
json: true,
maxsize: 5242880, //5MB
maxFiles: 5,
colorize: true
}),
new winston.transports.File({
level: "error",
name: "error",
filename: path.join(__dirname,"..","..","logs/errors.log"),
json: true,
maxsize: 5242880, //5MB
maxFiles: 5,
colorize: true
}),
new winston.transports.Console({
colorize: true,
level: "warning"
})
]
});
const stream = {
write: function(message, encoding){
logger.info(message);
}
};
export { logger, stream };
編集:明確にするために、httpリクエストログをデータベースログに記録したくありません。これを行う方法はありますか?