相关疑难解决方法(0)

Django设置默认日志记录

我似乎无法弄清楚如何为我的Django安装设置"默认"记录器.我想使用Django 1.3的新LOGGING设置settings.py.

我查看了Django Logging Doc的示例,但它看起来像他们只设置处理程序,它将为特定记录器进行日志记录.在他们的示例中,他们为名为'django','django.request'和'myproject.custom'的记录器设置处理程序.

我想要做的就是设置一个默认值logging.handlers.RotatingFileHandler,默认情况下会处理所有记录器.也就是说,如果我在我的项目中的某个地方创建一个新模块,并且它被表示为:my_app_name.my_new_module,我应该能够做到这一点并让所有日志记录转到旋转文件日志.

# In file './my_app_name/my_new_module.py'
import logging
logger = logging.getLogger('my_app_name.my_new_module')
logger.debug('Hello logs!') # <-- This should get logged to my RotatingFileHandler that I setup in `settings.py`!
Run Code Online (Sandbox Code Playgroud)

python django logging

93
推荐指数
2
解决办法
5万
查看次数

当使用docker/fig运行Django dev服务器时,为什么隐藏了一些日志输出?

我正在编写一个Dockerfile,它需要运行多个命令作为CMD指令的一部分,我认为正确的方法是运行一个带有主守护进程的shell脚本exec.不幸的是,作为该过程的一部分,我的一些输出(stdout?stderr?我不知道,我不知道如何找出)迷失了.

这是shell脚本:

#!/bin/sh

python manage.py migrate
exec python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

这个想法是migrate命令只运行一次并显示其输出,然后runserver命令应该接管并且容器运行直到该进程退出.

实际问题是输出migrate正确显示,但未显示立即输出runserver.奇怪的是,后来的请求记录runserver显示得很好.

澄清一下,这是我预期的输出:

[...]
No migrations to apply.
[...]
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[21/Jan/2015 16:27:06] "GET / HTTP/1.1" 200 15829
Run Code Online (Sandbox Code Playgroud)

这是我得到的fig up:

[...]
No migrations to apply.
[...]
[21/Jan/2015 16:27:06] "GET / HTTP/1.1" 200 15829
Run Code Online (Sandbox Code Playgroud)

我甚至都不确定这是谁的错.runserver命令是否根据其运行方式更改其输出?这有问题exec吗?是docker/fig?

作为一个额外的数据点,我注意到在运行容器时我确实获得了所有输出fig run web,但不是在我这样做时fig up …

django shell exec docker fig

7
推荐指数
1
解决办法
1133
查看次数

标签 统计

django ×2

docker ×1

exec ×1

fig ×1

logging ×1

python ×1

shell ×1