gpt4 book ai didi

javascript - 我可以在 Express 框架中使用 Node.JS 将日志文件保存到哪里?

转载 作者:行者123 更新时间:2023-11-30 17:33:12 26 4
gpt4 key购买 nike

我有一个 node.js 应用程序,我在其中使用 Winston 来跟踪一些日志记录。除了客户端之外,我还想有一个服务器端日志。在 express 框架中,是否只有公用文件夹中的文件可供客户端访问,如果我想在客户端用户无法访问的地方做一个服务器端日志,我可以在 public 之外创建一个文件夹吗?

最佳答案

确切地说,只需将日志文件指向 /public 文件夹以及您在 app.use(express.static(path.join(__dirname, ' public_folder')));

您可以配置 winston 传输是否通过设置其适当的属性来记录文件,例如,在 file 传输中您必须设置 filename 选项。

以下是一个config.js 文件,我为我的日志记录事件(服务器端和客户端请求)加载了所有配置:

config.json

{
"transports": {
"console": {
"enabled": true,

"colorize" : true,
"timestamp": false
},
"file" : {
"enabled": true,

"colorize" : true,
"filename" : "/var/log/vifros.log",
"timestamp": true
},
"mongodb": {
"enabled": true,

"db": "vifros"
}
}
}

EDIT LOGGING- logger.js --(见评论):

var winston = require('winston');
require('winston-mongodb').MongoDB; // Monkeypatch Winston for MongoDb transport.

var config = require('../config');

/*
* Enable initially all transports for initial app startup and then disable them according to settings.
*
* Add console transport.
*/
winston.remove(winston.transports.Console); // To being able to reconfigure it.

if (config.logging.transports.console.enabled) {
winston.add(winston.transports.Console, config.logging.transports.console);
}

/*
* File transport.
*/
if (config.logging.transports.file.enabled) {
winston.add(winston.transports.File, config.logging.transports.file);
}

/*
* Enable saving logs to mongodb.
*/
if (config.logging.transports.mongodb.enabled) {
winston.add(winston.transports.MongoDB, config.logging.transports.mongodb);
}

exports.logger = winston;

exports.tags = {
init : 'init',
api_request: 'api_request',
db : 'db',
validation : 'validation',
cross_rel : 'cross_relationship',
os : 'os'
};

关于javascript - 我可以在 Express 框架中使用 Node.JS 将日志文件保存到哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22568228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com