Django日志:日志未创建

1 投票
3 回答
520 浏览
提问于 2025-04-16 03:35

我在GAE开发服务器上运行我的应用程序,并且使用了app-engine-patch来运行Django。

我有一个视图出问题了,所以我想记录下发生的所有事情。

我在myapp.views里添加了:

import logging
LOG_FILENAME = '/mylog.txt'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)

我的函数是:

def function(string):
    logging.debug('new call')
    #do stuff
    #logging.debug('log stuff')

我的问题是我找不到日志。当我运行我的应用时没有错误,但日志没有生成。

我还尝试了不同的路径:/mylog.txt,mylog.txt,c:\mylog.txt,c:\complete\path\to\my\app\mylog.txt,但都不行。

另一方面,我尝试创建并运行一个单独的测试:

#test.py
import logging

LOG_FILENAME = '/mylog.txt'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)

logging.debug('test')

结果日志顺利生成了:c:\mylog.txt

我对日志记录不太熟悉,所以不知道是不是Django或者appengine有问题。

谢谢

3 个回答

0

默认情况下,dev_appserver 不会显示调试日志。如果你想开启这个功能,可以在运行时加上 --debug 这个选项。需要注意的是,dev_appserver 自己也会使用同样的日志记录工具,这样会输出很多你可能不太关心的调试信息。

你的日志信息会打印到错误输出(stderr)中。

0

我猜问题出在你把日志配置放在了视图里。对于Django的日志设置,有个简单的原则就是应该把日志配置放在settings.py文件里。

3

在App Engine上,你不能直接写文件,所以如果你试图把日志记录到文本文件里,那也是行不通的。日志输出会在开发时显示在SDK控制台,或者在生产环境中显示在日志控制台里。

撰写回答