用于加快应用程序日志配置的简单、健壮的功能

prolog的Python项目详细描述


简化和加速Python日志记录的工具和方便方法

  • 普通用例的简单(尽管固执己见)设置
  • 可通过用户和本地文件以及环境变量进行广泛而轻松的配置
  • 带有功能齐全的格式化程序和处理程序,也可以使用 在正常的logging情况下

用法

basic_config

开始使用prolog的最简单方法是在 申请代码:

import prolog
prolog.basic_config()

这将为默认级别配置root记录器logging.INFO 并设置两个处理程序:一个彩色的控制台流处理程序,以及一个文件 处理程序设置为记录到主应用程序目录中的默认文件-pypro.log

若要指定在应用程序或库代码中定义的选择记录器,请传递 所需记录器的逗号分隔名称:

prolog.basic_config('myapp,another_app')

basic_config接受以下参数:

loggers
要配置的所需记录器;可以是逗号分隔的 记录程序名称的字符串、实例的列表LoggerNone 对于根记录器。
level
指定所有记录器和处理程序的日志记录级别。可以是 所需级别的数值或字符串名称。
handlers
要添加到给定loggers;的处理程序可以是逗号分隔的 快捷方式名称字符串(默认为“stream”或“file”)或列表 第Handler个实例。
propagate
指示是否将每个logger实例设置为propagte。
reset_handlers
如果为true,则强制重置当前配置的所有处理程序。
cfg
要使用的prolog.config.PrologConfig实例。如果不给, 将使用默认值(prolog.config.config)。为所有人 前面的参数除了loggers设置为none(默认值)之外, cfg将用于确定适当的设置。

示例

安装后,可以调用prolog来显示配置设置或 示例用法:

$ python -m prolog sample --level=DEBUG basic
https://raw.githubusercontent.com/dakrauth/prolog/master/resources/basic-output.png

通过环境变量设置颜色:

$ export PYPROLOG_LEVEL_COLORS='CRITICAL:white,red;ERROR:lightred;DEBUG:lightgray,cyan;*:gray,gray'
$ python -m prolog sample --level=DEBUG basic
https://raw.githubusercontent.com/dakrauth/prolog/master/resources/env-color-output.png

开发和测试

$ pip install invoke
$ inv develop
$ inv test

配置

prolog可以通过许多不同的选项进行配置:

  • 用户级配置文件,使用appdirs确定用户的 配置目录加上pyprolog/config,它必须是json编码的 包含字典的文件覆盖下面列出的任何默认值
  • 当前工作目录配置文件.pyprologrc,也是json
  • 环境变量,请参见下文
  • 操作默认的prolog.config.config实例或实例化 您自己的
  • 通过prolog.config.dict_config
  • 生成logging.config.dictConfigdict

默认值

LEVEL = 'INFO'
SHORT_FMT = "{levelname}:{name} {message}"
LONG_FMT = '[{asctime} {name}:{levelname}:{module}:{lineno}] {message}'

COLOR_LONG_FMT = '{color}[{asctime} {name}:{levelname}:{module}:{lineno}]{endcolor} {message}'
COLOR_SHORT_FMT = '{color}{levelname}:{name}{endcolor} {message}'
LEVEL_COLORS = 'DEBUG:magenta;INFO:blue;WARNING:yellow;ERROR:red;CRITICAL:white,red'

DATE_FMT = "%Y-%m-%dT%H:%M:%S"
STYLE_FMT = '{'

HANDLERS = 'stream,file'
PROPAGATE = False
DISABLE_EXISTING = True
RESET_HANDLERS = True

STREAM_LEVEL = 'NOTSET'
STREAM_FORMATTER = 'color'
STREAM_STREAM = 'sys.stderr'

FILE_LEVEL = 'NOTSET'
FILE_FORMATTER = 'long'
FILE_FILENAME = 'pypro.log'
FILE_MAX_BYTES = 0
FILE_BACKUP_COUNT = 0

环境

默认情况下,prolog.config.config实例将加载任何环境 变量以PYPROLOG_开头,以列出的任何默认值结尾 上面例如,要覆盖默认日志记录级别,请执行以下操作 在执行应用程序代码之前:

$ export PYPROLOG_LEVEL='DEBUG'
$ python myapp.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在SpringMVC中使用单个视图执行所有CRUD操作?   java如何使用DBFlow进行迁移?   导入java。锡兰的朗   安卓在实现Lint自定义检测器时如何调试java源代码?   列表的java字符串格式   java程序基于WebFlux的SSE客户端,具有重新连接功能   java Spring批处理作业读取器持续运行,尽管计划时间为5分钟   java Android Studio在我的代码中没有显示任何错误,但gradle显示了。试一试   java移动JTextArea滚动到插入符号   java选项菜单不工作   爪哇苹果。awt。mac 10.7视网膜上的奇怪行为   java将参数从webmethod(在web服务中)传递到soap处理程序   java如何在Android中使用API调用填充AutoCompleteTextView?   如何使用Selenium和Java从Chrome获取控制台日志   java流收集器。toMap调用toString而不是value   如何在PHP和Java/Play框架应用程序之间共享一个Apache实例?   java Spring引导文件下载zip   Mockito mocked集合中的java类型安全问题