问题标签 [python-logging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5697 浏览

python - Python记录如何在日志中跟踪主机名?

我以这种方式使用 Python 日志记录:

我有一堆物联网设备都在运行(制作日志)。他们将日志数据流式传输到数据库。为了区分来源,我需要包含源 IP 地址。

有没有办法使用日志记录获取主机名?IP 地址或主机名是否在 LogRecords 中被跟踪/可跟踪?

一般来说,将主机名添加到 LogRecord 的最佳方法是什么?

0 投票
3 回答
4625 浏览

python - 从 loop.create_task() 引发的 python asyncio 异常

我希望我的代码使用 pythonlogging来记录异常。在我通常使用的代码中await,通常会引发异常,因此:

try: await code_that_can_raise() except Exception as e: logger.exception("Exception happended")

工作正常。

然而,当使用 loop.create_task(coro())

我不确定如何在这里捕获异常。
包装 create_task() 调用显然是行不通的。在代码中记录每个异常的最佳解决方案是什么?

0 投票
0 回答
242 浏览

python - set_start_method('spawn') 重置记录器配置

考虑以下代码段:

这将打印FLAG1十次,包括时间戳,FLAG2不会写入标准输出。如果我删除对 的调用set_start_method('spawn')FLAG1和都会FLAG2显示,我想这是因为生成的线程缺少由dictConfig. 不过,有没有办法将记录器传递给生成的线程并保留相同的记录行为,而不必传递记录器配置字典?

0 投票
1 回答
1092 浏览

python - Filter Different log level messages to different log files

So, I am trying to create a logging system for my Django Project where I need to save all the different log level messages to different files.

TLDR,

I managed to get the Logs for particular level to appear in their respective files, but

  • Debug.log contains all the log level messages

  • Info.log contains all log level messages leaving debug

  • warning.log contains WARN, ERROR & CRITICAL log level messages

  • error.log contains ERROR & CRITICAL log level messages

  • critical.log contains just CRITICAL log level messages

So, I followed the official https://docs.djangoproject.com/en/2.2/topics/logging/

Got a clearer picture from this Django rest framework logging different levels on different files

Then wrote the following code.

So, now the result that i am getting is as follows,

debug.log

INFO 2019-05-02 05:36:22,888 autoreload 1683 4558792128 Watching for file changes with StatReloader ERROR 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 error! DEBUG 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 debug INFO 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 info WARNING 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 warning CRITICAL 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 critical

info.log

INFO 2019-05-02 05:36:22,888 autoreload 1683 4558792128 Watching for file changes with StatReloader ERROR 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 error! INFO 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 info WARNING 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 warning CRITICAL 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 critical

warn.log

ERROR 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 error! WARNING 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 warning CRITICAL 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 critical

error.log

ERROR 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 error! CRITICAL 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 critical

critical.log

CRITICAL 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 critical

0 投票
3 回答
7121 浏览

python - 如何检查 Docker 容器微服务中的 python 日志记录

我刚刚开始使用 Docker。

我正在开发由另一位开发人员编写的项目。在项目 Docker 容器中,我有三个微服务(aggregatore、classificatore、testmicro),每个都使用 python 模块logging进行调试。

我的问题是我不知道在哪里可以查看logging输出。

码头工人-compose.yml

我是终端,我跑

这将启动所有微服务。

让我们专注于分类服务。

分类器/Dockerfile

分类器/main.py

在上面的代码中,输出文本“ classificatore index”到哪里去了?

感谢您提供的任何支持。

0 投票
0 回答
31 浏览

python - 获取发送到日志记录的字符串副本

我想拦截进入 Pythonlogging框架的字符串,以便我还可以在列表中获得字符串的副本。我希望在每个函数调用上都这样做,因此列表不会在所有调用之间共享。有一些像:

0 投票
1 回答
734 浏览

python - 如何在 Python 2 中调用 logging.setLogRecordFactory?

给出以下简单示例:

我可以运行它Python 3并使用我的自定义LogRecord类,但Python 2会引发错误:

0 投票
1 回答
6934 浏览

django - 有什么方法可以将当前日志记录修改为 json 格式,并添加了一些其他字段 python 日志记录

我有许多用 python django 编写的应用程序代码,每个应用程序都使用标准的 python 记录器模块,并且只记录了一个简单的消息字符串。

现在有什么方法可以添加我自己的客户中间件或 django 应用程序,当在他们的方法中调用日志记录时,它应该到达我的函数,我将为日志添加更多价值,制作正确的 json 格式,然后写入日志文件。因此,在当前的应用程序开发人员中,除了需要添加我的 django 应用程序或中间件外,不需要做很多更改

0 投票
1 回答
309 浏览

django - 将 Logger 的 Django 测试输出重定向到文件

我正在执行一个简单的 Python Django TestCase。问题很简单:我想使用记录器将信息(stdout)重定向到一个文件,并将故障/错误(stderr)重定向到另一个文件。

我知道我可以简单地通过定义记录器并使用它来打印消息(即logger.info('my debug message'))将标准输出打印到文件;但是,我还没有找到记录失败/错误的方法。我可以使用 Bash 重定向整个测试运行的输出(我是半成功的),但我知道有一种方法可以简化它并使用记录器为我完成所有后端工作。

这是我的记录器的示例:

假设我正在尝试将以下测试用例记录到我的记录器中指定的logs/test-fail.log文件中:

简而言之,我想使用记录器而不是使用 Bash 从 Django TestCase 打印错误/失败。另请注意,我可以使用默认记录器,但我想仅为测试用例定义错误记录器案例,并且我不希望默认使用测试错误案例。

0 投票
1 回答
94 浏览

python - 当 django 中存在回溯错误时,我在标准输出中获取日志 2 次

我的 LOGGER 的 settings.py 如下,

现在,当有任何未处理的异常(例如 var = abc 并且未定义 abc 时,我会得到 2 次日志,

一个是我的处理程序,所以回溯错误是 json 格式,第二个是同样的错误,没有 json 格式,它来自 django.request。

注意:我没有在我的代码中添加任何额外的记录器行。我只希望我所有未处理的异常也是 json 格式,但只有一次。这样当我发送给 ELK 时,它是干净的