gpt4 book ai didi

javascript - Winston Logger可以用在前端进行日志记录吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:23 26 4
gpt4 key购买 nike

我正在使用

创建完整的平均堆栈应用程序

NodeJs , Angular 6 , ExpressJs and MongoDB

我已经成功创建了一个服务器,并且它工作得很好,在我的应用程序中记录错误时,我没有使用 console.log,而是决定使用 Winston Logger,这就是我现在所拥有的

Server side

var appRoot = require('app-root-path');
var winston = require('winston');

// define the custom settings for each transport (file, console)
var options = {
file: {
level: 'info',
filename: `${appRoot}/logs/app.log`,
handleExceptions: true,
json: true,
maxsize: 5242880, // 5MB
maxFiles: 5,
colorize: false,
},
console: {
level: 'debug',
handleExceptions: true,
json: false,
colorize: true,
},
};

// instantiate a new Winston Logger with the settings defined above
const logger = winston.createLogger({
transports: [
new winston.transports.File(options.file),
new winston.transports.Console(options.console)
],
exitOnError: false, // do not exit on handled exceptions
});

// create a stream object with a 'write' function that will be used by `morgan`
logger.stream = {
write: function (message, encoding) {
// use the 'info' log level so the output will be picked up by both transports (file and console)
logger.info(message);
},
};

module.exports = logger;

注意:服务器端的 Winston 工作正常

Client-Side

我想在我的客户端 Angular 6 应用程序中使用 Winston。

示例:在我的一个组件中我有这个。

import * as logger from "winston";
.........
this.activeRouter.params.subscribe((params) => {
// tslint:disable-next-line:prefer-const
let id = params['id'];
this.moviesService.getReview(id)
.subscribe(review => {
console.log(review);
this.review = review;
});
});

正如你所看到的,我正在使用 console.log(review) ,而不是控制台日志,我想使用 Winston

如何在客户端使用Winston logger?我是所有这些东西的新手,任何帮助将不胜感激。

最佳答案

是的,这是可能的,但是浏览器的默认传输非常有限。我建议使用https://www.npmjs.com/package/winston-transport-browserconsole

npm install Winston-transport-browserconsole -S

它易于使用并且支持记录 json 对象:

import * as winston from "winston";
import BrowserConsole from 'winston-transport-browserconsole';

const level = "debug";
winston.configure({
transports: [
new BrowserConsole(
{
format: winston.format.simple(),
level,
},
),
],
});

winston.debug("DEBUG ", {a: 1, b: "two"});

关于javascript - Winston Logger可以用在前端进行日志记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51110058/

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