python(68)-log模块-文件名为自定义变量-不同模块访问同一日志文件

logging模块写日志,网上的帖子大体都在说两种,一种按类型分日志,一种是按时间分日志。
我想要的是:
1.log日志名为自定义变量
2.不同模块访问同一日志文件


1.log日志名为自定义变量
代码如下:

import logging
import logging.handlers

def log1_create(name):
    # 1、创建一个logger,如果参数为空则返回root
    logger = logging.getLogger(name)
    # 2.设置日志级别
    logger.setLevel(logging.WARNING)
    #3.创建一个 handler,用于写入日志文件
    path = "D:\\PythonPrj\\PA63\\Log\\2022_08_10\\"+name
    fh = logging.FileHandler(path)
    #4.设置日志格式
    formatter = logging.Formatter(
        fmt="%(asctime)s %(name)s %(filename)s %(message)s",
        datefmt="%Y/%m/%d %X"
    )
    #5.绑定 handler 到 handler和logger对象 上
    fh.setFormatter(formatter)
    logger.addHandler(fh)
#6、打印输出
    logger.warning("-----logcreate--name=%s-----",name)



if __name__ == "__main__":
        name="log1.txt"
        log1_create(name)
        name = "log2.txt"
        log1_create(name)

2.不同模块访问同一日志文件

一个项目中,不同的py文件要访问同一个日志文件只要在被调用的py中。

logging.basicConfig即可
main.py
import logging

def CreateLog(name):
        print('----CreateLog---------------')
        PATH = os.path.abspath('.')  
        nowdate = time.strftime("%Y_%m_%d", time.localtime())
        LogPath = PATH + '\\Log\\'+nowdate
        if (not os.path.exists(LogPath)):  # 文件夹就创建
            os.mkdir(PLogPath)
        self.logfile = LogPath  + '\\'+name+'.txt'
        if(not os.path.exists(logfile)):  #如果没有文件创建文件
            print("----CreateLog---没有log文件---创建新的----")
            open(logfile,'w')     
        logging.basicConfig(level=logging.WARNING,
                            filename=self.logfile,
                            filemode='a',
                            format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
        logging.warning('------MAIN------filename=%s----', self.logfile)


if __name__ == "__main__":
        name="test"
        CreateLog(name)
fun1.py
import logging


logging.basicConfig(level=logging.WARNING,
                                filename=logfile,
                                filemode='a',
                                format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
logging.warning('------fun1 生成------filename=%s----',logfile)
fun2.py
import logging


logging.basicConfig(level=logging.WARNING,
                                filename=logfile,
                                filemode='a',
                                format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
logging.warning('------fun2 生成------filename=%s----',logfile)

                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值