日志记录不显示数组的结果

时间:2016-11-14 06:08:52

标签: python django logging

软件

  • Django 1.9
  • Python 3.4

我做了什么?

我的views.py

中有以下Django代码
from django.db import connection
    cursor = connection.cursor()
    cursor.execute('SELECT p.name, p.name_zh_hans, p.art_number, ....')
    rows = cursor.fetchall()

logger = logging.getLogger(__name__)

for row in rows:
        row_num += 1
        logger.info(row)
        for col_num in range(len(row)):
            ws.write(row_num, col_num, row[col_num], font_style)

我在日志文件中得到了什么?

(0.005) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None
(0.005) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None
(0.006) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None

我期待什么?

显示日志文件中的数组内容

出了什么问题?

2 个答案:

答案 0 :(得分:0)

在致电logging.basicConfig(level=logging.INFO)之前,您可能需要设置logging.getLogger(__name__)

您可以查看Logging Cookbook以获取详细指南。

答案 1 :(得分:0)

我相信你所看到的实际上是来自 django.db.backends ,结帐this reference的日志。

  

与代码与数据库交互相关的消息。对于   例如,请求执行的每个应用程序级SQL语句   在DEBUG级别记录到此记录器。

     

此记录器的消息具有以下额外上下文:

     

持续时间:执行SQL语句所需的时间。
   sql :SQL   已执行的声明。
params :用于的参数   SQL调用。

出于性能原因,仅启用SQL日志记录   当settings.DEBUG设置为True时,无论日志记录级别如何   已安装的处理程序。

     

此日志记录不包括框架级初始化(例如SET   TIMEZONE)或事务管理查询(例如BEGIN,COMMIT和   ROLLBACK)。如果要查看,请在数据库中启用查询日志记录   所有数据库查询。

您正在使用级别日志级别信息进行日志记录,同时 django.db.backends 会在 DEBUG 级别进行日志记录,因此请将您的日志处理程序结帐为确定你实际记录的是什么以及你不是什么:)

希望它有所帮助!