4

我有一个尝试登录到 Azure Application Insights 的示例 NodeJS 应用程序。当我运行时,应用程序成功登录到控制台,但 Azure App Insights 未捕获,无论是在本地运行还是在托管的 Azure 应用服务上运行。它只捕获console.log 的输出,而不是winston 的输出。请指教

应用程序日志文件系统已在 Azure 应用服务上启用并设置为调试级别

在此处输入图像描述

温斯顿:版本 3.3.3

应用洞察:1.8.2 版

在此处输入图像描述

应用程序.js

const http = require('http');
const logger = require('./logger')
const appInsight = require('applicationinsights')

appInsight.setup('<MY INSTRUMENTATION KEY>')
.setAutoDependencyCorrelation(true)
.setAutoCollectRequests(true)
.setAutoCollectPerformance(true, true)
.setAutoCollectExceptions(true)
.setAutoCollectDependencies(true)
.setAutoCollectConsole(true, true)
.setSendLiveMetrics(false)
.setDistributedTracingMode(appInsight.DistributedTracingModes.AI)
.start()
const server = http.createServer((request, response) => {
    console.log('Console can be logged')
    logger.info('Winston info')
    logger.debug('Winston debug')
    logger.error('Winston error')
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("Hello World!");
});

const port = process.env.PORT || 1337;
server.listen(port);
console.log("Server running at http://localhost:%d", port);

logger.js

const winston = require("winston");

const level = process.env.LOG_LEVEL || 'debug';

const logger = winston.createLogger({
    transports: [
        new winston.transports.Console({
            level: level,
            format: winston.format.simple(),
            debugStdout: true,
        })
    ]
});

module.exports = logger
4

1 回答 1

4

原来是在我的演示项目applicationInsights中导入的winston

于 2020-07-19T14:15:31.330 回答