使用标准Python日志模块管理Mercurial日志
项目描述
通过logging
模块使用Mercurial日志
此扩展将大多数针对终端的用户反馈重定向到标准库的Python logging
模块。
这主要用于服务器端用例,不太可能对客户端操作有用。
事实上,在服务器上,许多消息只对系统管理员有用,如果被客户端看到,将是不想要的干扰。一个值得注意的例外是ui.status
,它实际上用于通过网络报告有意义的消息。
使用日志比使用如ui.debug
这样的标志并将stderr
重定向更加健壮和灵活。它还提供了与Sentry(见下文)的集成。可以直接使用具有logging
处理程序的其他许多日志聚合系统。
在撰写本文时,它有一个副作用是禁用其他用于日志的扩展,如blackbox
。
安装
使用pip
或pip3
安装
pip install hgext-loggingmod
pip3 install "hgext-loggingmod>=0.2.0"
然后,在你的HGRC中包括以下内容
[extensions]
loggingmod =
配置
所有参数都应在[logging]
hgrc部分中设置。
基本配置
这些是首先应用的,主要使用logging.basicConfig
示例(这些是默认值)
[logging]
level = info
format = [%(asctime)s] [%(process)d] [%(levelname)s] [%(name)s] %(message)s
hg_format = [%(asctime)s] [%(process)d] repo:%(repo)s [%(levelname)s] [%(name)s] %(message)s
将日志记录到文件
[logging]
file = /var/log/mercurial.log
格式
format
字符串是一个常规的日志格式字符串,有关可以使用的键的完整列表,请参阅LogRecord属性。
hg_format
字符串也是一个常规的日志格式字符串,但它还可以使用repo
参数:当前存储库在文件系统中的完整路径,如果与给定的日志记录相关。此格式在hg
日志记录器和其子项(如hg.logging
、hg.discovery
等)中使用。
默认情况下,时间将包括时区。
通过文件进行高级配置
JSON
这是最完整的,因为它利用了dictConfig()
[logging]
config.json = /etc/hg-logging.json
尽管如此,上面执行的基本配置首先完成,但如果使用incremental
关键字,则会被清除。
INI
这被转发到fileConfig()
[logging]
config.ini = /etc/hg-logging.ini
与Sentry一起使用
先决条件
应可以从Mercurial进程导入sentry_sdk
包,请参阅Sentry安装说明
根据我们的经验,pip install sentry-sdk
还不够,我们还必须安装Brotli。您的结果可能会有所不同。
如有疑问,请先测试
激活
要将日志记录转发到Sentry,只需在hgrc中指定DSN
[logging]
sentry.dsn = https://<key>@sentry.example.net/<project>
警告:不要在上面的DSN中使用引号。
基本配置
Sentry默认集成捕获所有日志调用,并且与常规logging
配置正交,除了日志记录器级别。
此扩展有几个可调整的旋钮。以下是一个示例
[logging]
sentry.ignore_loggers = discovery extension
# these are the default values:
sentry.event_level = error
sentry.breadcrumb_level = info
精细配置
而不是像上面那样使用平坦配置,您可以通过使用config.json
指令和Sentry的处理程序进行显式配置来禁用全局集成。
[logging]
config.json = /etc/hg-config-with-sentry.conf
sentry.dsn = https://<key>@sentry.example.net/<project>
sentry.default_integration = false
当然,这也禁用了sentry.event_level
和sentry.breadcrumbs_level
配置项。
在撰写本文时,这些处理程序是
sentry_sdk.integrations.logging.EventHandler
sentry_sdk.integrations.logging.BreadCrumbHandler
另请参阅:Sentry文档中的处理程序类
hg-loggingmod-0.4.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 70549f50fc12f9b7a20f0faf43fc1ca3aa5ebb9cbee66a0d7c8a1f9c23d04d29 |
|
MD5 | 834fcd0914bac8e36068c29097f4dbc8 |
|
BLAKE2b-256 | f18fbb4487b2a0d9040f81e3d23602098bf7a5bbe55a0f637261f3d0114ec586 |