winston logger

1) Logger.js

const winston = require("winston");
require('winston-daily-rotate-file');
const moment = require('moment');
const util = require('util');
const MESSAGE = Symbol.for('message');
const SPLAT = Symbol.for('splat');
require('winston-syslog').Syslog;

class Logger {
    constructor(Module, file, level = 'info'){
        this.options = {
            host: "127.0.0.1",
            port: "514",
        };
        this.logger = winston.createLogger({
            levels: winston.config.syslog.levels,
            level: level,
            format: winston.format(function(info, opts){
                let prefix = util.format('%s [%s] [%s]',moment().format('YYYY-MM-DD HH:mm:ss,SSS').trim(), Module, info.level.toUpperCase());
                if(info[SPLAT]){
                    info[MESSAGE] = util.format('%s %s',prefix,util.format(info.message, ...info[SPLAT]));
                }else{
                    info[MESSAGE] = util.format('%s %s',prefix, util.format(info.message));
                }
                return info;
            })(),
            transports: [
                //new winston.transports.Syslog(this.options),
                new winston.transports.Console(),
                new(winston.transports.DailyRotateFile)({
                    filename: file,
                    level: level,
                    datePattern: 'YYYY-MM-DD',
                    zippedArchive: false,
                    maxSize: '50m',
                    maxFiles: '30d'
                })
            ]
        });
    
    }
    debug(...params){
        this.logger.debug(...params);
    }
    info(...params){
        this.logger.info(...params);
    }
    warn(...params){
        this.logger.warning(...params);
    }
    error(...params){
        this.logger.error(...params);
    }
}
module.exports = Logger;

 

2) main.js

var Logger = require("./logger");
mLogger = new Logger("mLogger","./logger.txt","debug"); //模块名, 文件,标准级别
mLogger.error("Hello world");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Winston是一个非常流行的Node.js日志库,可以轻松地在Vue项目中使用它来记录日志。以下是在Vue项目中使用Winston的步骤: 1. 安装Winston:在终端中使用以下命令安装Winston: ``` npm install winston ``` 2. 创建一个日志文件:在你的Vue项目根目录下创建一个logs文件夹,并在其中创建一个名为app.log的日志文件。 3. 创建Winston实例:在你的Vue项目中创建一个名为logger.js的文件,并在其中创建一个Winston实例,配置日志记录器。以下是一个示例配置: ``` const winston = require('winston'); const path = require('path'); const logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf(info => `${info.timestamp} [${info.level.toUpperCase()}] ${info.message}`) ), transports: [ new winston.transports.File({ filename: path.join(__dirname, '../logs/app.log') }) ] }); module.exports = logger; ``` 此配置将日志记录级别设置为info,并将日志记录到我们之前创建的app.log文件中。它还使用了Winston的格式化选项,以便在日志中包含时间戳。 4. 在Vue组件中使用日志记录器:在Vue组件中导入logger.js文件,并在需要记录日志的地方使用logger实例。例如: ``` import logger from './logger'; export default { name: 'MyComponent', created() { logger.info('Component created'); }, methods: { handleClick() { logger.warn('Button clicked'); } } }; ``` 在此示例中,我们在组件的created钩子中记录了一条“Component created”消息,并在按钮的单击事件处理程序中记录了一条“Button clicked”消息。这些消息将被记录到我们之前创建的app.log文件中。 这就是在Vue项目中使用Winston记录日志的基本步骤。你可以根据需要调整Winston配置,以满足你的特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值