Masonite 日志

未匹配的标注
本文档最新版为 4.0,旧版本可能放弃维护,推荐阅读最新版!

Masonite 日志

简介

日志记录对于任何应用程序来说都是非常关键的部分。Masonite 日志记录程序包允许您查看应用程序抛出的错误,并允许您以几种不同的警报级别记录自己的消息。

Masonite 日志当前包含记录到文件、syslog 和 slack 的功能。

安装

若要使 Masonent 日志记录程序包在您的计算机上启动并运行,必须首先安装该程序包:

$ pip install masonite-logging

然后将服务提供者添加到您的应用程序中:

from masonite.logging.providers import LoggingProvider
# ...
PROVIDERS = [
    # ..

    # Third Party Providers
    LoggingProvider,
    #..
]

您可以执行一个命令发布这个提供者,这将会创建您的 config/logging.py 配置文件:

$ craft publish LoggingProvider

记录异常

Masonite 日志程序包将自动向您的 Masonite 应用程序注册一个异常侦听器,并记录您的应用程序在相应通道中遇到的任何异常。

通道

Masonite 日志记录程序包使用通道和驱动程序的概念。内部通道用于创建并传递各种信息以实例化驱动程序。在更高级别,您将主要使用渠道。

开箱即用的有几个不同的通道:singlestackdailyslacksyslogterminal。每个通道将以自己的方式处理日志消息。

单通道

单通道会将所有信息放入「单个」文件中。可以在 config/logging.py 文件的 path 选项中指定此文件的存放路径:

'single': {
    # ...
    'path': 'storage/logs/single.log'
},

每日通道

每日通道类似于单通道,除了这将基于当天日期创建一个新的日志文件。因此,这将创建类似 10-23-2019.log10-24-2019.log 的日志文件。

此处设置的路径必须是目录,而不是文件的全路径:

'single': {
    # ...
    'path': 'storage/logs'
},

Slack 通道

Slack 通道将直接向您的 Slack 通道发送消息,并在记录任何消息时直接警报,以便您或您的团队迅速采取行动。

您需要生成一个 Slack 应用程序令牌。可以将其添加到您的 .env 文件中:

SLACK_TOKEN=xoxp-35992....

如果您需要更改任何默认设置(如用户、图标表情符号),都可以在配置文件中设置它们。

'slack': {
    # ...
    'channel': '#bot',
    'emoji': ':warning:',
    'username': 'Logging Bot',
    'token': env('SLACK_TOKEN', None),
    # ...
}

这些选项由您决定。

Terminal 通道

Terminal 通道将仅向终端输出错误。这对于调试很方便,或者在使用 stack 通道时可以作为其他通道的补充。

Stack 通道

当您需要将多个通道组合在一起时,堆栈通道非常有用。也许您想让它同时记录到一个 daily 通道文件,并向你的 slack 组发送消息。您可以通过在 stack 通道选项中指定 channels 来轻松完成此操作。

'stack': {
    # ...
    'channels': ['daily', 'slack']
},

您可以在这里拥有任意数量的通道。

Syslog

syslog 通道将直接与您的系统级日志记录软件绑定。每个操作系统都有其自己的系统监视类型。

您需要绑定到系统套接字路径。对于每个操作系统和机器,这可能会有所不同,因此请找到您所使用的套接字路径,并将其放入配置选项中:

'syslog': {
    # ...
    'path': '/var/run/syslog',
}

日志级别

日志级别是您可以在通道上指定的日志级别的等级。从最重要到最不重要的顺序如下:

emergency
alert
critical
error
warning
notice
info
debug

每个通道可以有其自己的最小日志级别。仅当日志消息大于或等于该通道上的最小日志级别时,日志消息才会继续。

例如,如果我们在 daily 通道上有这样的配置:

'daily': {
    'level': 'info',
    'path': 'storage/logs'
},

仅在日志级别为 notice 或更高时,才将消息发送到此通道。它将忽略所有 debug 级别的日志消息。

日志信息写入

您当然可以编写自己的日志消息。您可以从容器中解析 logger 类,并使用与要为其写入消息的日志级别相等的方法。

from masonite.logging import Logger

def show(self, logger: Logger):
    logger.debug('message')
    logger.info('message')
    logger.notice('message')
    logger.warning('message')
    # ...

写入到指定的通道

您可以使用 channel 方法轻松地切换通道:

from masonite.logging import Logger

def show(self, logger: Logger):
    logger.channel('slack').debug('message')
    # ...

时区

默认情况下,Masonite 日志将使用 UTC 时区记录所有时间,但是如果要切换时区,则可以在配置文件中设置:

CHANNELS = {
    'timezone': 'America/New_York',
    'single': {
        # ...
    },

现在,与日志记录关联的所有时间戳将使用正确的时区。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/masonite/2.3/of...

译文地址:https://learnku.com/docs/masonite/2.3/of...

上一篇 下一篇
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~