我正在使用Winston来为我的节点应用程序进行日志记录。我正在尝试获取Winston登录到日志文件中的确切值。在这种情况下的示例将返回:-
{“消息”:“新S3!”,“级别”:“信息”}
我已经测试过控制台登录该功能并检查Winston中的某些程序包功能,到目前为止,找不到返回它的任何方法。
var logger = winston.createLogger({
transports: [
transport, //This is to upload to
new winston.transports.File(options.file), //Will log into file
new winston.transports.Console(options.console) //Will log at console display
]
});
var loggedVal = logger.info('New S3!');
console.log(loggedVal);
答案 0 :(得分:0)
我在测试控制台传输的输出时遇到了相同的问题。因此,该解决方案仅对jest env有效。
我们可以使用there中所述的jest-mock-process程序包 或创建简单的间谍
const mockStdoutWrite = jest.spyOn(process.stdout, 'write').mockImplementation(function () { return true; });
const mockStdout = jest.spyOn(console, 'log').mockImplementation(function () { });
logger.debug('Debug message');
expect(mockStdoutWrite).toHaveBeenNthCalledWith(1, ....);
答案 1 :(得分:0)
Winston记录器并非旨在完成您要实现的目标,并且几乎没有用例说明您要实现的目标,因此我怀疑Winston会具有该功能。