使用标准Python日志模块管理Mercurial日志
hg-loggingmod的Python项目详细描述
通过logging
模块的Mercurial日志
此扩展将用于终端的大多数用户反馈重定向到
标准库的Pythonlogging
模块。在
这主要用于服务器端用例,不太可能 对客户端操作有用。在
实际上,在服务器上,许多消息对系统管理员是有用的
只有,如果被客户看到,是不必要的污染。
一个值得注意的例外是ui.status
,它确实被使用了
通过网络报告有意义的信息。在
使用日志记录比使用诸如
ui.debug
和重定向{logging
处理程序可以直接使用。在
在撰写本文时,它的副作用是禁用其他扩展
用于日志,例如blackbox
。在
安装
使用pip
或pip3
安装:
pip install hgext-loggingmod
pip3 install "hgext-loggingmod>=0.2.0"
然后,在您的HGRC中,包括以下内容:
^{pr2}$配置
所有参数都要在[logging]
hgrc部分中设置。在
基本配置
这些是首先应用的,主要使用
^{
示例(这些是默认值):
[logging]level=infoformat=[%(asctime)s] [%(process)d] [%(levelname)s] [%(name)s] %(message)shg_format=[%(asctime)s] [%(process)d] repo:%(repo)s [%(levelname)s] [%(name)s] %(message)s
记录到文件
[logging]file=/var/log/mercurial.log
格式
format
字符串是常规日志格式字符串,请参阅
LogRecord attributes可用于此处的键的完整列表。在
hg_format
字符串也是一个常规的日志格式字符串,但是
另外,还可以使用repo
参数:指向
文件系统上的当前存储库(如果与给定的日志记录相关)。
此格式用于hg
记录器及其后代,例如
hg.logging
,hg.discovery
等
默认情况下,times将包括时区。在
通过文件进行高级配置
JSON
这是最完整的,因为它利用了^{
[logging]
config.json = /etc/hg-logging.json
不过,上面的基本配置是先完成的,但它已被清除
除非使用incremental
关键字。在
INI
这将转发给^{
[logging]
config.ini = /etc/hg-logging.ini
与哨兵一起使用
先决条件
sentry_sdk
包应该可以从Mercurial进程导入,请参阅
Sentry install instructions
根据我们的经验,pip install sentry-sdk
还不够,我们还必须这样做
同时安装Brotli。你的里程数可能
变化。在
有疑问,test it first
激活
要将日志转发给Sentry,只需在hgrc中指定DSN:
[logging] sentry.dsn = https://<key>@sentry.example.net/<project>
警告:不要使用上面的引号。在
基本配置
Sentry默认集成捕获所有日志调用,并且是正交的
常规的logging
配置,记录器级别除外。在
这个扩展有几个旋钮可以调整它。 下面是一个例子
[logging]sentry.ignore_loggers=discovery extension# these are the default values:sentry.event_level=errorsentry.breadcrumb_level=info
精细配置
您可以禁用毯子,而不是上面的扁平配置
与config.json
集成并求助于显式配置
指挥员和哨兵
[logging]config.json=/etc/hg-config-with-sentry.confsentry.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
另请参阅哨兵文档中的:Handler classes
- 项目
标签: