【问题标题】:How can we write winston logs to SQL Server?我们如何将 winston 日志写入 SQL Server?
【发布时间】:2020-01-02 06:26:13
【问题描述】:

您能帮我用 WINSTON 包将日志写入 SQL Server 数据库吗?

我试过下面的 npm 包

https://www.npmjs.com/package/winston-sql-transport

但无法实现? 从另一个文件中获取配置 1) config.LOG.IS_DB_LOG 2) config.LOG.LEVELS.length

 getTransports() {
    let trs = [];
        if (config.LOG.IS_DB_LOG && config.LOG.LEVELS.length > 0) {
            trs.push(
             new SQLTransport({
                 level:"error",
                 label:"logger",
                 client: 'mssql',
               connectionString:'mssql://sa:Password@localhost/SQLEXPRESS/',
                 connection: {  
                   user: 'sa',
                   password: 'Password',
                   server: ".\SQLEXPRESS",
                   database: 'EventLogs'
                 },
                 name: 'SQLTransport',
                 pool: {
                   min: 0,
                   max: 10
                 },
                 tableName: 'LOGS'
             })
            );
        }
        return trs;
}

//-------获取传输并推送到数组

initLogger() {
this.logger = createLogger({
    format: combine(
        label({ label: "logger" }),
        timestamp(),
        myFormat,
        format.json(),
        prettyPrint()
    ),
    transports: this.getTransports(),
    exitOnError: false // do not exit on handled exceptions
});

}

我按照文档中提到的相同程序进行操作

【问题讨论】:

  • 能把目前试过的代码贴出来,调试起来很方便。
  • 确定@PrabhjotSinghKainth

标签: node.js sql-server express logging winston


【解决方案1】:

我所做的是使用mysql 包创建自己的SQL 传输。有关 Winston Transports 的更多信息,请参阅this 链接。

const sqlTransport = new SQLLogging();
sqlTransport.on("logged", log => {
  let { message, level, timestamp } = log;
  message = message.toString();
  // vars for DB
  timestamp = moment(timestamp).format("YYYY-MM-DD HH:mm:ss");
    sql.query(
      {
        sql:
          "YOUR QUERY",
        timeout: 9999,
        values: [YOURDATA]
      },
      (error, response) => {
      }
    );
  }
});

在你的 Logger 中你必须调用你的 sqlTransport 函数

【讨论】:

    猜你喜欢
    • 2018-03-21
    • 1970-01-01
    • 2019-05-20
    • 2015-06-20
    • 2021-04-26
    • 2017-05-17
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    相关资源
    最近更新 更多