2024-04-26 21:26:35 发布
网友
如果我在本地运行,我可以看到我的print()文本。但即使启用了文件系统应用程序服务日志,我仍然没有看到任何日志,无论是在_docker.log还是流日志中。在Azure应用程序服务上为Python生成本地日志的正确方法是什么
print()
_docker.log
我遇到了类似的问题。在我的例子中,日志记录与容器中的其他日志不一致。最后,这似乎更多的是一个日志缓冲问题,而不是Azure应用程序服务特有的问题。通过在Azure应用程序服务中设置以下环境变量解决了此问题:设置->;集装箱->;应用程序设置
PYTHONUNBUFFERED = 1
在docker run命令中,您将其设置为:
env PYTHONUNBUFFERED=1
为了结束循环,我最终制作了一个简单的日志方法
def writeLog(log: str): basepath = path.dirname(__file__) today = date.today() filepath = path.abspath(path.join(basepath, "..", "..", "LogFiles", "MyBot_" + today.strftime("%Y-%m-%d") + ".log")) f = open(filepath, "a+") f.write(today.strftime("%Y-%m-%d %H:%M:%S") + " " + log) f.write("\n") f.close()
如果我不close(),我将无法下载该文件。将它与其他日志文件一起放在LogFiles中可以更容易地从VS代码中查看
close()
LogFiles
我使用一个Flask web进行测试,并按照以下文档设置WSGI_日志:Configure the FastCGI handler,它将创建日志,但是日志文件只有StdErr日志,大约StdOut它始终为空
StdErr
StdOut
因此,我使用另一种解决方案将脚本的标准输出重定向到某个日志文件
import sys sys.stdout = open('D:\\home\\LogFiles\\app.log', 'w') print("test")
您可以配置上述代码,然后发布代码并运行它
我遇到了类似的问题。在我的例子中,日志记录与容器中的其他日志不一致。最后,这似乎更多的是一个日志缓冲问题,而不是Azure应用程序服务特有的问题。通过在Azure应用程序服务中设置以下环境变量解决了此问题:设置->;集装箱->;应用程序设置
在docker run命令中,您将其设置为:
为了结束循环,我最终制作了一个简单的日志方法
如果我不
close()
,我将无法下载该文件。将它与其他日志文件一起放在LogFiles
中可以更容易地从VS代码中查看我使用一个Flask web进行测试,并按照以下文档设置WSGI_日志:Configure the FastCGI handler,它将创建日志,但是日志文件只有
StdErr
日志,大约StdOut
它始终为空因此,我使用另一种解决方案将脚本的标准输出重定向到某个日志文件
您可以配置上述代码,然后发布代码并运行它
相关问题 更多 >
编程相关推荐