Timber.io + Django + Heroku |如何仅显示应用程序日志

时间:2020-02-19 20:12:19

标签: django heroku logging

我有一个运行在Heroku上的Django应用程序,其漏极将日志发送到我的Timber.io源。

当前,我的Timber.io日志显示:

  • 我在应用中编写的日志以显示(我想要的)
  • app日志
  • heroku日志

Here is a link to what a section of my Timber.io logs look like.请注意如何记录app web.1heroku router

除了在Django应用程序中编写的日志之外,我不希望其他任何日志。

Django代码:

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
timber_handler = timber.TimberHandler(
    source_id=config('TIMBER_SOURCE_ID'),
    api_key=config('TIMBER_API_KEY'),
    level=logging.DEBUG
)
logger.addHandler(timber_handler)

...

logger.warning('A user has navigated to the homepage') # To reiterate, logs like this are all I want to display in my Timber.io logs.

我已经向Timber.io的支持电子邮件发送了一些电子邮件,提出了这个问题。但是,一周之后,我没有收到任何回复。

这是我的第一个问题,因此如果我做错了什么,我深表歉意。预先感谢您的回复。

1 个答案:

答案 0 :(得分:0)

有关定义自定义调试记录器的信息

my_logger.py

{
    "scopeName": "go.html.injection",
    "injectionSelector": "L:text.html",
    "patterns": [
        {
            "include": "#go-tag"
        }
    ],
    "repository": {
        "go-tag": {
            "begin": "(<)(go)",
            "beginCaptures": {
                "1": {
                    "name": "punctuation.definition.tag.begin.html"
                },
                "2": {
                    "name": "entity.name.tag.html"
                },
                "3": {
                    "name": "punctuation.definition.tag.end.html"
                }
            },
            "end": "(<\/)(go)(>)",
            "endCaptures": {
                "1": {
                    "name": "punctuation.definition.tag.begin.html"
                },
                "2": {
                    "name": "entity.name.tag.html"
                },
                "3": {
                    "name": "punctuation.definition.tag.end.html"
                }
            },
            "patterns": [
                {
                    "contentName": "source.go",
                    "begin": "(>)",
                    "beginCaptures": {
                        "1": {
                            "name": "punctuation.definition.tag.end.html"
                        }
                    },
                    "end": "(?=</go>)",
                    "patterns": [
                        {
                            "include": "source.go"
                        }
                    ]
                }
            ]
        }
    }
}

Views.py:

import logging
logger = logging.getLogger("my_logger")
logger.setLevel(logging.INFO)
timber_handler = timber.TimberHandler(
    source_id=config('TIMBER_SOURCE_ID'),
    api_key=config('TIMBER_API_KEY'),
    level=logging.DEBUG
)
logger.addHandler(timber_handler)

编辑:

看看他们的documentation,您也可以在木材侧进行过滤。

在您的shell中,发出以下curl命令:

  • 用您的实际API密钥替换YOUR_API_KEY。
  • 用您的木材组织ID替换YOUR_ORGANIZATION_ID。
  • 用过滤器的名称替换FILTER_NAME(例如:“丢弃健康检查日志”)
  • 将MATCH替换为您的日志中必须包含的子字符串,才能进行删除。
  • 将SOURCE_ID替换为相关源的ID。添加任意数量的

    from my_logger import logger as debug_logger
    
    debug_logger.warning('A user has navigated to the homepage')
    
相关问题