python项目中的日志定义

python日志定义,包含配置文件,和日志实例创建方法

一、日志创建方法,创建一个loger实例

import logging

def get_logger(name):
    # 创建一个logger
    logger = logging.getLogger(name)
    # 设置日志级别
    logger.setLevel(logging.INFO)
    # 创建一个日志记录到文件的handler,也就是日志文件的路径
    file_handler = logging.FileHandler(f'logs\\{name}.log', 'a', 'utf-8')
    # 设置文件handler的日志级别
    file_handler.setLevel(logging.INFO)
    # 创建一个控制台handler
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)
    # 创建日志格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    # 设置handler的格式
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)
    # 添加handler到logger
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
    return logger

二、使用方法

class MyTestClass():
    def __init__(self, host: list, port: str, username: str, password: str, logger_name):
        self.logger = logger_collector.get_logger(logger_name)
    def my_method(self):
    	self.logger.debug("这是一条debug信息")
		self.logger.info("这是一条info信息")
		self.logger.warning("这是一条warning信息")
		self.logger.error("这是一条error信息")
		self.logger.critical("这是一条critical信息")

以上方法,简单 的创建了一个获取logger的方法,更个性化或者更复杂的配置可以参考官方文档:https://docs.python.org/zh-cn/3/library/logging.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python Web 项目,多进程写日志需要考虑多个进程同时写入同一个文件的问题。为了避免不同进程之间的写入操作互相干扰,可以使用 Python 标准库的 `logging` 模块,并将日志输出到不同的文件。 下面是一个示例代码: ```python import logging import multiprocessing import os def process_task(): # 设置日志输出格式 log_format = '%(asctime)s %(levelname)s %(processName)s %(message)s' logging.basicConfig(level=logging.INFO, format=log_format) # 获取当前进程 ID process_id = os.getpid() # 创建一个 FileHandler 对象,并指定日志输出文件 file_handler = logging.FileHandler(f'log_{process_id}.txt') file_handler.setLevel(logging.INFO) file_handler.setFormatter(logging.Formatter(log_format)) # 将 FileHandler 添加到 logger 对象 logger = logging.getLogger() logger.addHandler(file_handler) # 写入日志信息 logger.info('This is a log message from process %d.', process_id) if __name__ == '__main__': # 创建多个进程 processes = [] for i in range(5): p = multiprocessing.Process(target=process_task) processes.append(p) p.start() # 等待所有进程完成 for p in processes: p.join() ``` 在上面的代码,我们首先定义了一个 `process_task` 函数,该函数会在每个进程被调用。在 `process_task` 函数,我们首先设置了日志输出的格式,然后获取当前进程 ID,创建了一个 `FileHandler` 对象,并将其添加到 `logger` 对象。最后,我们使用 `logger` 对象写入了一条日志信息。 在 `__main__` 函数,我们创建了 5 个进程,并等待所有进程完成。在每个进程,都会执行 `process_task` 函数,并将日志输出到不同的文件。 这样,我们就可以在多进程的 Python Web 项目,实现日志的并发写入了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值