如何在日志记录配置文件中引用标准库?

泽佐洛

我需要使用socket日志记录配置文件中标准库定义的常量问题,当读取配置文件时,logging.config.fileConfig()其结尾为:

NameError: name 'socket' is not defined

我的问题与这一问题非常接近,不同之处在于,作为一种解决方法,如果我socket从读取此日志记录配置文件的主脚本中导入缺少的库(例如),则不能解决问题(这是因为我使用了python3?)。

完整的日志记录配置文件:

[loggers]
keys=root,mainLogger

[handlers]
keys=mainHandler,nullHandler

[formatters]
keys=defaultFormatter,rawMessageFormatter

[logger_root]
level=INFO
handlers=nullHandler

[logger_mainLogger]
level=DEBUG
handlers=mainHandler
qualname=mainLogger

[handler_nullHandler]
class=NullHandler
args=(50,)

[handler_mainHandler]
class=logging.handlers.SysLogHandler
level=INFO
formatter=defaultFormatter
args=('/dev/log','myapp',socket.SOCK_STREAM)

[formatter_defaultFormatter]
format=%(asctime)s.%(msecs)d %(filename)s: %(funcName)s: %(message)s
datefmt=%Y/%m/%d %H:%M:%S

[formatter_rawMessageFormatter]
format=%(message)s
datefmt=

作为另一个解决方法,我尝试了此处建议的解决方案:如何使用python的fileConfig使用日志记录并配置日志文件文件名,但是由于socket.SOCK_STREAM不是字符串(而且我找不到任何可以在文档中使用的类型,所以这都不起作用:https : //docs.python.org/3.4/library/string.html#formatspec)。

我也曾尝试socket.SOCK_STREAM用1代替(因为socket.SOCK_STREAM == 1是True),但是它都不起作用(socket.SOCK_STREAM不是int ...)。

我希望避免将日志记录配置文件转换为字典(但是如果没有其他解决方案,则可以这样做)。

维奈·萨吉普(Vinay Sajip)

本节文档所述,在logging包的名称空间中评估值因此,您可以执行以下操作:

import logging
import socket

# The next line allows 'socket' in the logging package's namespace to pick up
# the stdlib socket module
logging.socket = socket
...
# when the config file is processed, it should work as expected
logging.config.fileConfig(...)
# remove the mapping from the logging package, as not needed any more
# (optional)
del logging.socket

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在日志记录配置文件中引用标准库?

来自分类Dev

如何在同一配置文件中混合使用日志记录处理程序(文件和定时)和压缩日志?

来自分类Dev

从Python日志记录的YAML配置文件中评估语句

来自分类Dev

在nginx config中,如何在配置文件中直接显示一些日志文件?

来自分类Dev

如何在全局配置文件中为 ngx-logger 配置记录器级别

来自分类Dev

Log4j2:如何在控制台日志中查找是否已找到日志配置文件

来自分类Dev

如何在赛普拉斯配置文件中引用环境变量?

来自分类Dev

如何在数据库中存储不同的用户配置文件?

来自分类Dev

如何在Eclipse中配置ORMLite的表配置文件?

来自分类Dev

如何在Spring配置文件中配置Hibernate

来自分类Dev

如何在Centos中配置网络配置文件?

来自分类Dev

如何在Struts配置文件中的文件夹内配置文件的路径

来自分类Dev

如何在Struts配置文件中的文件夹内配置文件的路径

来自分类Dev

如何在流明中配置日志记录级别

来自分类Dev

如何在流明中配置日志记录级别

来自分类Dev

如何在wso2as中配置openjpa日志记录

来自分类Dev

如何在ASP.Net Webapp中引用的项目DLL中初始化AutoMapper配置文件

来自分类Dev

如何在其他配置文件中获取配置文件值-Laravel 5

来自分类Dev

将关键字arg传递给python日志记录配置文件中的日志处理程序

来自分类Dev

如何在配置文件中正确使用占位符作为日志文件的路径/名称?

来自分类Dev

如何在Java中的配置文件中存储谓词

来自分类Dev

如何在 iOS 应用程序中使用标准经典蓝牙配置文件?

来自分类Dev

如何在phpMyAdmin中禁用查询配置文件

来自分类Dev

如何在shell脚本中解析配置文件(* .conf)?

来自分类Dev

如何在xCode 5中删除Provisioning配置文件

来自分类Dev

如何在NixOs中更新ssh配置文件

来自分类Dev

如何在laravel中永久更改配置文件

来自分类Dev

如何在Dockerfile中复制配置文件?

来自分类Dev

如何在mongodb配置文件中设置授权?

Related 相关文章

  1. 1

    如何在日志记录配置文件中引用标准库?

  2. 2

    如何在同一配置文件中混合使用日志记录处理程序(文件和定时)和压缩日志?

  3. 3

    从Python日志记录的YAML配置文件中评估语句

  4. 4

    在nginx config中,如何在配置文件中直接显示一些日志文件?

  5. 5

    如何在全局配置文件中为 ngx-logger 配置记录器级别

  6. 6

    Log4j2:如何在控制台日志中查找是否已找到日志配置文件

  7. 7

    如何在赛普拉斯配置文件中引用环境变量?

  8. 8

    如何在数据库中存储不同的用户配置文件?

  9. 9

    如何在Eclipse中配置ORMLite的表配置文件?

  10. 10

    如何在Spring配置文件中配置Hibernate

  11. 11

    如何在Centos中配置网络配置文件?

  12. 12

    如何在Struts配置文件中的文件夹内配置文件的路径

  13. 13

    如何在Struts配置文件中的文件夹内配置文件的路径

  14. 14

    如何在流明中配置日志记录级别

  15. 15

    如何在流明中配置日志记录级别

  16. 16

    如何在wso2as中配置openjpa日志记录

  17. 17

    如何在ASP.Net Webapp中引用的项目DLL中初始化AutoMapper配置文件

  18. 18

    如何在其他配置文件中获取配置文件值-Laravel 5

  19. 19

    将关键字arg传递给python日志记录配置文件中的日志处理程序

  20. 20

    如何在配置文件中正确使用占位符作为日志文件的路径/名称?

  21. 21

    如何在Java中的配置文件中存储谓词

  22. 22

    如何在 iOS 应用程序中使用标准经典蓝牙配置文件?

  23. 23

    如何在phpMyAdmin中禁用查询配置文件

  24. 24

    如何在shell脚本中解析配置文件(* .conf)?

  25. 25

    如何在xCode 5中删除Provisioning配置文件

  26. 26

    如何在NixOs中更新ssh配置文件

  27. 27

    如何在laravel中永久更改配置文件

  28. 28

    如何在Dockerfile中复制配置文件?

  29. 29

    如何在mongodb配置文件中设置授权?

热门标签

归档