小编use*_*082的帖子

Windows 中的 Python 日志记录与多处理

我有一个相当大的 Python 项目,目前在 Linux 上运行,但我正在尝试扩展到 Windows。我已将代码简化为一个完整的示例,可以运行它来说明我的问题:我有两个类,Parent 和 Child。首先初始化父级,创建一个记录器,并生成一个子级来执行工作:

import logging
import logging.config
import multiprocessing

class Parent( object ):
    def __init__(self, logconfig):
        logging.config.dictConfig(logconfig)
        self.logger = logging.getLogger(__name__)
    
    def spawnChild(self):
        self.logger.info('One')
        c = Child(self.logger)
        c.start()

class Child(multiprocessing.Process):
    def __init__(self, logger):
        multiprocessing.Process.__init__(self)
        self.logger = logger

    def run(self):
        self.logger.info('Two')

if __name__ == '__main__':
    p = Parent({
            'version':1, 
            "handlers": {
                "console": {
                    "class": "logging.StreamHandler",
                    "stream": "ext://sys.stdout"
                },
            },
            "root": {
                "level": "DEBUG",
                "handlers": [
                    "console",
                    ]
                }
            }
        )
    p.spawnChild()
Run Code Online (Sandbox Code Playgroud)

在 Linux(特别是 ubuntu 12.04)上,我得到以下(预期)输出:

user@ubuntu:~$ python …
Run Code Online (Sandbox Code Playgroud)

python windows logging multiprocessing python-logging

5
推荐指数
1
解决办法
3195
查看次数

在 Windows 中识别进程加载的所有模块

我正在编写一个 C++ 程序,它需要告诉我由给定进程加载的所有模块。我已经开始研究EnumProcessModules,但它警告:“EnumProcessModules 函数不会检索使用 LOAD_LIBRARY_AS_DATAFILE 标志加载的模块的句柄。有关更多信息,请参阅 LoadLibraryEx。”

不幸的是,LoadLibraryEx没有提供有关如何识别以这种方式加载的任何进程的任何见解。它仅提供将其作为数据文件加载不会阻止任何其他进程更改库的功能。

有没有办法识别用 LoadLibraryEx 动态加载的库?

c winapi

0
推荐指数
1
解决办法
784
查看次数

标签 统计

c ×1

logging ×1

multiprocessing ×1

python ×1

python-logging ×1

winapi ×1

windows ×1