使用标准Python日志模块管理Mercurial日志

hg-loggingmod的Python项目详细描述


通过logging模块的Mercurial日志

此扩展将用于终端的大多数用户反馈重定向到 标准库的Pythonlogging模块。在

这主要用于服务器端用例,不太可能 对客户端操作有用。在

实际上,在服务器上,许多消息对系统管理员是有用的 只有,如果被客户看到,是不必要的污染。 一个值得注意的例外是ui.status,它确实被使用了 通过网络报告有意义的信息。在

使用日志记录比使用诸如 ui.debug和重定向{}。它还提供与 哨兵(见下文)。许多其他日志聚合系统都有logging 处理程序可以直接使用。在

在撰写本文时,它的副作用是禁用其他扩展 用于日志,例如blackbox。在

安装

使用pippip3安装:

   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.logginghg.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_levelsentry.breadcrumbs_level配置项。在

在撰写本文时,这些处理程序是

  • sentry_sdk.integrations.logging.EventHandler
  • sentry_sdk.integrations.logging.BreadCrumbHandler

另请参阅哨兵文档中的:Handler classes

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

推荐PyPI第三方库


热门话题
java如何在没有代码气味的情况下编写遵循Liskov替代和其他可靠原则的不可变映射?   java最新jre上的压缩字符串对旧编译代码有好处吗?   java是否可以在javascript中取消PrimeFaces menuitem onclick函数   mysql从SQL数据库中访问java中xml名称空间标记的值   从java程序打开excel文件   java在方法中使用“var”是否会使执行(并发)线程不安全?   java使搜索视图以一种关于AndroidManifest的通用方式可用。xml   java对如何准确使用正则表达式感到困惑?   mule如何访问java文件中的记录变量   java在从2D数组引发异常后继续   枚举当前设置为的java值   java当listview只有几个项目时,如何使alert对话框显示listview的所有项目?   java getTableRow()返回大于项大小的索引   c用java传输二进制文件(数据)   java更改多选列表项复选框颜色