如何使用winston在子目录而不是根目录中设置日志?
Posted
技术标签:
【中文标题】如何使用winston在子目录而不是根目录中设置日志?【英文标题】:how to use winston to setup log in a sub directory instead of root directory? 【发布时间】:2014-08-04 21:13:41 【问题描述】:我想在名为 logs 的目录中为我的 nodejs
项目设置日志
根据文档here
我在做:
winston.add(winston.transports.File, filename: 'logs/mylogs.log' );
但它什么也没做。
我如何做到这一点?
【问题讨论】:
如果文件夹 /logs 文件夹不存在,您需要先创建它。 是的日志文件夹已经存在,但我仍然面临这个问题.. 你在哪个平台上? Linux、Windows、Mac? 我使用的是 Mac OS X 10.9.3 您希望您的日志文件夹位于您的项目文件夹中,对吧? 【参考方案1】:将以下代码放入您的服务器文件中。
var winston = require('winston');
var fs = require( 'fs' );
var path = require('path');
var logDir = 'log'; // directory path you want to set
if ( !fs.existsSync( logDir ) )
// Create the directory if it does not exist
fs.mkdirSync( logDir );
var logger = new (winston.Logger)(
transports: [
new (winston.transports.Console)(
colorize: 'all'
),
new (winston.transports.File)(filename: path.join(logDir, '/log.txt'))
]
);
logger.info("Anything you want to write in logfile");
【讨论】:
fs 是核心模块,不需要从 npm 安装。【参考方案2】:您应该使用相对路径(点和反斜杠):
winston.add(winston.transports.File, filename: './logs/mylogs.log' );
【讨论】:
以上是关于如何使用winston在子目录而不是根目录中设置日志?的主要内容,如果未能解决你的问题,请参考以下文章
如果我使用自定义记录器功能而不是使用像winston或log4js这样的库,是否会影响Node服务器的性能?