无论消息中指定的日志级别如何,所有 AppServiceConsoleLogs 在 Azure Application Insights 中都显示为错误级别

问题描述 投票:0回答:1

我们有一个记录到 Azure Application Insights 的应用程序服务。当应用服务中的日志聚合在 AppServiceConsoleLogs 表中时,尽管在应用程序中将日志级别设置为“信息”,但它们都被列为“错误”级别。有谁经历过这个或知道如何解决它吗?

python logging azure-web-app-service azure-application-insights azure-log-analytics
1个回答
0
投票

我可以使用以下代码获取应用程序见解的日志。

from fastapi import FastAPI
import logging
from applicationinsights import TelemetryClient
from applicationinsights.requests import WSGIApplication
from fastapi.responses import PlainTextResponse
from fastapi.middleware.trustedhost import TrustedHostMiddleware

app = FastAPI()

instrumentation_key = 'your appinsights instrumentationkey'  
telemetry_client = TelemetryClient(instrumentation_key)

app.add_middleware(TrustedHostMiddleware, allowed_hosts=["*"])

console_logger = logging.getLogger('console_logs')
console_logger.setLevel(logging.INFO)

console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_logger.addHandler(console_handler)

@app.get("/")
async def hello():
    telemetry_client.track_trace("Information log (App Insights)", severity='Information')
    telemetry_client.track_trace("Warning log (App Insights)", severity='Warning')
    telemetry_client.track_trace("Error log (App Insights)", severity='Error')
    
    console_logger.info("Information log (Console)")
    console_logger.warning("Warning log (Console)")
    console_logger.error("Error log (Console)")
    telemetry_client.track_trace("Custom log (App Insights)", severity='Custom')
    
    telemetry_client.flush()
    return PlainTextResponse("Hello, World!")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)


以上代码在本地的状态:

enter image description here

登录applicationinsights:

我能够在应用程序洞察中获取日志,并且还会显示正确的严重性级别。

enter image description here

enter image description here

我正在获取应用程序服务日志以及日志级别状态。
输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.