You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service中Python Docker容器关键日志缺失求助

解决方案:Azure App Service Docker容器Python日志缺失问题

1. 修复代码中的重复日志配置问题

你的日志使用代码中,在导入logger_config后再次调用logging.basicConfig(level=logging.INFO),这会干扰之前的集中配置(basicConfig仅首次调用生效,重复调用可能导致子logger的配置继承异常)。修改使用代码如下:

import logging
import logger_config

# 直接获取logger,无需再次调用basicConfig
logger = logging.getLogger(__name__)

logger.info(f"Some custom logged message")

2. 验证环境变量与日志路径权限

  • 确认环境变量生效:在setup_logging函数中添加打印语句,验证LOG_FILE_PATH是否正确读取(该输出会进入default_docker.log,可在日志流中查看):
    def setup_logging():
        log_file = os.getenv("LOG_FILE_PATH", "/app/logs/logs_output_file.log")
        # 添加验证输出
        print(f"[DEBUG] Log file path loaded: {log_file}")
        
        os.makedirs(os.path.dirname(log_file), exist_ok=True)
        # ... 原有配置代码
    
  • 修复目录写入权限:Azure App Service容器的运行用户可能无/home/LogFiles的写入权限,在Dockerfile中添加权限配置:
    RUN mkdir -p /home/LogFiles && chmod 777 /home/LogFiles
    

3. 开启Azure App Service日志功能

在Azure门户操作:

  • 进入目标App Service -> 监控 -> 日志流
  • 确保应用日志(文件系统)和Docker容器日志均已开启,日志级别设置为Info或更低(若需捕获调试日志,设为Debug)
  • 开启后,STDOUT/STDERR日志会自动写入/home/LogFiles/default_docker.log,自定义日志文件也会生成在该目录下

4. 调整日志级别以捕获调试日志

若关键日志为DEBUG级别,需修改setup_logging中的日志级别配置:

logging.basicConfig(
    handlers=[
        logging.StreamHandler(sys.stdout),
        logging.FileHandler(log_file, mode="a"),
    ],
    level=logging.DEBUG,  # 从INFO改为DEBUG
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
)

5. 直接验证日志文件内容

通过Azure门户的高级工具(Kudu) -> 控制台,进入/home/LogFiles目录,查看日志文件状态:

cd /home/LogFiles
# 查看文件列表
ls -l
# 查看自定义日志内容
cat some_app_logs_combined.log

内容的提问来源于stack exchange,提问作者Semen Shekhovtsov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:49:56