父进程和子进程都可以访问记录器吗?

2024-01-06

在python中,如果在父进程中配置了记录器,那么子进程也会获取该记录器吗?更清楚地说,在我的应用程序中,我通过执行以下操作为父进程配置根记录器logger = logging.getlogger()并向其中添加处理程序。现在,当一个子进程被分叉时,它就会

logger = logging.getlogger()
logger.info("dfsdf")

然后所有日志都会根据父级的根记录器进行处理。我没有为孩子配置根记录器。这怎么可能?它们是两个不同的进程,那么它们怎么能有相同的记录器呢?


当您分叉一个进程时,它会“继承”父进程内存,包括记录器配置。

来自分叉维基百科页面 http://en.wikipedia.org/wiki/Fork_%28operating_system%29:

fork 操作为子进程创建一个单独的地址空间。子进程具有父进程所有内存段的精确副本,但如果实现了写时复制语义,则可能不会分配实际的物理内存(即,两个进程可能会暂时共享相同的物理内存段) 。父进程和子进程都拥有相同的代码段,但彼此独立执行。

这并不是 Python 所独有的。任何分叉的 UNIX 进程都会发生这种情况,无论它是用 C、Perl 还是 Python 实现的。

The multiprocessing module http://docs.python.org/2/library/multiprocessing.html使用它(在支持它的平台上)来快速启动新进程。

请注意,继承记录器可能会导致竞争条件;这logging模块只知道线程安全;它使用线程锁来序列化对处理程序的访问,但该锁不在进程之间共享(子进程中的所有内容都是副本,而不是同一个对象)。

这意味着,当您同时记录来自父进程和子进程的消息时,当操作系统在将日志条目写入文件时在两个进程之间切换时,日志条目最终可能会混合在一起。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

父进程和子进程都可以访问记录器吗? 的相关文章

  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • 如何仅选择数组中的第一列并对其求和?

    这是我的代码 import numpy as np contrainte1 1080 0 65 minutes tous les jours contrainte2 720 0 55 minutes du lundi au vendredi
  • Pandas 在列级别连接数据帧时添加键

    根据 Pandas 0 19 2 文档 我可以提供keys参数来创建结果多索引 DataFrame 一个例子 来自 pandas 文档 是 result pd concat frames keys x y z 我将如何连接数据框以便我可以在
  • python blpapi安装错误

    我试图根据 README 中的说明为 python 安装 blpapi 3 5 5 但是在运行时 python setup py install 我收到以下错误 running install running build running b
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • 类型错误:translate() 只接受一个参数(给定 2 个参数)[重复]

    这个问题在这里已经有答案了 我的代码在 python 2 x 版本上运行良好 但是当我尝试在 python 3 x 版本上运行它时 出现错误 主题 需要缩写短信编码中的任何消息 Code def sms encoding data star
  • 在Python中清理属于不同语言的文本

    我有一个文本集合 其中的句子要么完全是英语 印地语或马拉地语 每个句子附加的 id 为 0 1 2 分别代表文本的语言 无论任何语言的文本都可能有 HTML 标签 标点符号等 我可以使用下面的代码清理英语句子 import HTMLPars
  • 在 Python 中使用类作为命名空间是个好主意吗

    我正在将一堆相关的东西放入一个类中 主要目的是将它们组织到命名空间中 class Direction north 0 east 1 south 2 west 3 staticmethod def turn right d return tu
  • 为什么在 __init__ 函数中声明描述符类会破坏描述符功能?

    在下面的 B 类中 我想要 set 每当您赋值给 A 类中的函数时 就会调用该函数B a 相反 将值设置为B a覆盖B a与价值 C类分配给C a工作正常 但我想为每个用户类都有一个单独的 A 实例 即我不想在 C 的一个实例中更改 a 来
  • 多个列表和大小的所有可能排列

    在 python 中使用以下命令很容易计算简单的排列itertools permutations https docs python org 3 library itertools html itertools permutations 你
  • 如何不断地将 STDOUT 发送到我的 python TCP 服务器?

    我有简单的 python echo 服务器 它使用套接字 并向客户端回显随机数 我有另一个程序 每 2 秒将值打印到标准输出 如果它只是一个脚本 我可以像这样重定向 stdout python script py 并像这样在脚本中获取它da
  • Python 中使用 globals() 的原因?

    Python 中有 globals 函数的原因是什么 它只返回全局变量的字典 这些变量已经是全局的 所以它们可以在任何地方使用 我只是出于好奇而问 试图学习Python def F global x x 1 def G print glob
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • 获取 python 模块的 2 个独立实例

    我正在与以非 OO 方式编写的 python 2 x API 进行交互 它使用模块全局范围来处理一些内部状态驱动的东西 在它不再是单例的情况下需要它 并且修改原始代码 不是我们的 不是一个选择 如果不使用单独解释器的子进程运行 有什么方法可
  • 从 python 文件调用 Julia 函数

    我能够创建一个 docker 环境 然后按照这个线程我有一个用 Julia 编写的高性能函数 如何从 Python 中使用它 https stackoverflow com questions 64241264 i have a high
  • 具有行业级约束的 SciPy 投资组合优化

    尝试在这里优化投资组合权重分配 通过限制风险来最大化我的回报函数 我可以毫无问题地通过简单的约束 所有权重之和等于 1 找到产生我的回报函数的优化权重 并做出另一个约束 即我的总风险低于目标风险 我的问题是 如何为每个组添加行业权重界限 我
  • Django 按小时过滤

    我找到了那个链接 http code djangoproject com attachment ticket 8424 time filters diff http code djangoproject com attachment tic
  • 如何从 python 中的字符串中删除 ANSI 转义序列

    这是包含我的字符串的片段 ls r n x1b 00m x1b 01 31mexamplefile zip x1b 00m r n x1b 01 31m 该字符串是从我执行的 SSH 命令返回的 我无法使用当前状态下的字符串 因为它包含 A
  • Pandas 2 个字段中唯一值的数量

    我正在尝试查找覆盖 2 个字段的唯一值的数量 例如 一个典型的例子是姓氏和名字 我有一个数据框 当我执行以下操作时 我只获取每列的唯一字段数 在本例中为 最后一个 和 第一个 不是复合体 df Last Name First Name nu

随机推荐

  • Linux 内核:设置通过 create_device() 创建的 /dev 文件的权限

    我正在制作一个小型 Linux 模块 它是 char 设备的驱动程序 在我的代码中 我创建了设备类 而不是设备本身 因此 dev 文件是 在我的系统中创建 问题是 dev文件只有root权限 而用户 对该文件既没有读 写也没有执行权限 我想
  • 在 Vagrant 配置期间更新 .bashrc 和环境变量

    我正在使用 Vagrant 设置一个包含 python pip virtualenv virtualenvwrapper 和一些要求的盒子 配置 shell 脚本添加了virtualenvwrapper 所需的行 http virtuale
  • 将 string[][] 与 npgsql 一起使用

    不支持吗 尝试插入命令参数设置为的数据时出现异常 var parameter IDbDataParameter cmd Parameters index var list string value parameter Value list
  • 如何在 Android API 17 之前的 Android 中检测外部显示器

    我正在使用具有受版权保护的视频的应用程序 该视频只能在 Android 设备中运行 而不能在通过 HDMI 或无线连接的外部显示器中运行 我发现了很棒的 AP I推介会 http developer android com referenc
  • 为什么变量“i”和“j”用于计数器?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我知道这似乎是一个绝对愚蠢的问题 但我很好奇 不能不问 为什么 i 和 j 成为大多数控制结构
  • 如何在Android中没有SQL数据库的情况下显示在线数据以供离线使用?

    我想要节目3fragments in my Activity并从中加载数据json in any fragments 我将网站数据显示到Recyclerview with OkHTTP v3图书馆 我想离线显示此数据 我的意思是如果用户关闭
  • 上下文切换线程等待

    我已经寻找这个问题的答案一天了 但找不到直接的答案 我正在阅读上下文切换等待队列之类的内容 确实很好地掌握了所有内容 在阅读一篇文章时 写到当发生车队情况时 将会有大量的上下文切换 那么让我直接说一下 假设一个线程处于等待互斥体解锁的队列中
  • 类型错误:引导日期选择器中未定义日期

    我正在使用引导日期选择器http www eyecon ro bootstrap datepicker http www eyecon ro bootstrap datepicker 但 firebug 显示 bootstrap datep
  • 在 SQLPLUS 中正确格式化表

    在这被投票为重复问题之前 我在 S O 上花了相当多的时间 试图解决这个问题 正如您在下面的屏幕截图中看到的 我的表格看起来很乱 对于第一个和第二个表 您可以看到每个表有 2 组列标题 那么 例如 我怎样才能将所有 5 条客户记录包含在一张
  • 如何将任何 mp3 文件转换为 .wav 16khz 单声道 16 位

    请帮助选择将任何 mp3 文件转换为特殊 wav 的解决方案 我是 Linux 命令行工具的新手 所以现在对我来说很难 我需要从任何 mp3 文件中获取具有 16khz 单声道 16 位声音属性的 wav 我正在尝试 ffmpeg i 11
  • 将转换后的 DataFrame 保存/导出回 JDBC / MySQL

    我正在尝试弄清楚如何使用新的DataFrameWriter将数据写回 JDBC 数据库 我似乎找不到任何相关文档 尽管查看源代码似乎应该是可能的 我正在尝试的一个简单示例如下所示 sqlContext read format jdbc op
  • 引用 dplyr across() 内的列名称

    是否可以参考专栏names在 lambda 函数里面across df lt tibble age c 12 45 sex c f f allowed values lt list age 18 100 sex c f m df gt mu
  • 在C中获取文件大小的正确方法

    我正在做一个套接字编程作业 其中我必须在 sparc 和 Linux 机器之间发送一个文件 在以字符流发送文件之前 我必须获取文件大小并告诉客户端 以下是我尝试获取尺寸的一些方法 但我不确定哪一种是合适的 出于测试目的 我创建了一个内容为
  • Glassfish 上的领域身份验证后重定向

    我目前正在 Glassfish 上运行 JPA EJB JSF 应用程序 并使用安全 JDBC 领域进行身份验证 该领域运行得很好 满足了要求 直到客户要求对导航进行小的更改 如今 如果您尝试访问受保护的页面 身份验证机制会将您重定向到 w
  • 从视频中提取音频为 wav

    我知道有一个与我类似的问题 从视频文件中提取 wav 文件 https stackoverflow com questions 1010937 extract wav file from video file 我是 C 新手 了解 COM
  • array.reduce() 方法中此语法的含义是什么?

    我正在研究一个功能性的 JavaScript 库 并发现了一个单行函数 它取数组中数字的平均值 我对语法中包含的某些内容感到困惑 但似乎不需要正确返回结果 const numArr 1 2 3 4 5 6 7 8 9 10 const av
  • 如何获取具有给定属性的所有 Unicode 字符的列表?

    如果不循环整个 Unicode 字符范围 如何获取具有给定属性的字符列表 特别是我想要一个所有数字字符的列表 即那些匹配 d 我看过Unicode UCD http perldoc perl org Unicode UCD html 它对于
  • 如何使用vue js滚动结束页面

    如何滚动到页面底部 scroll let container this el querySelector scrollingChat container scrollTop container scrollHeight 我正在这样做 并且总
  • 在 Pandas 中有效地嵌套查询/比较多个数据集

    我正在使用 Pandas 第一次 来确定人员是否满足课程出勤的先决条件 下面的代码返回所需的结果 但我确信有更好的方法来实现相同的结果 确定您是否可以学习物理的标准如下 Math A OR Math B OR Math C AND Eng
  • 父进程和子进程都可以访问记录器吗?

    在python中 如果在父进程中配置了记录器 那么子进程也会获取该记录器吗 更清楚地说 在我的应用程序中 我通过执行以下操作为父进程配置根记录器logger logging getlogger 并向其中添加处理程序 现在 当一个子进程被分叉