【问题】

有一个比较长的python脚本文件,其中关于log日志输出,用的是logging,对应初始化代码为:logging.basicConfig(

level = logging.DEBUG,

format = 'LINE %(lineno)-4d %(levelname)-8s %(message)s',

datefmt = '%m-%d %H:%M',

filename = scriptSelfName + ".log",

filemode = 'w');

# define a Handler which writes INFO messages or higher to the sys.stderr

console = logging.StreamHandler();

console.setLevel(logging.INFO);

# set a format which is simpler for console use

formatter = logging.Formatter('LINE %(lineno)-4d : %(levelname)-8s %(message)s');

# tell the handler to use this format

console.setFormatter(formatter);

logging.getLogger('').addHandler(console);

然后logging.info,logging.debug等就可以输入日志到对应的log文件BlogToWordpress.log中了。

现在该文件由于太大,被分为一个主文件BlogToWordpress.py和多个子文件,比如BlogNetease.py,crifanLib.py等。

由于被分拆之后,子文件中的log输出,好像无法直接使用logging了。

然后只能使用print,很是不爽。

现在希望,子文件中的logging和主文件中的logging的输出,都输出到同一个log文件,即主文件所生成的那个log文件中。

【解决过程】

1.由于之前刚搞懂关于py模块被当做子模块调用之前的初始化:

所以首先想到的是,在子模块初始化中,也同样使用logging,然后单独生成自己的logging文件,测试代码如下:#------------------------------------------------------------------------------

if __name__=="BlogNetease":

print "BlogNetease is imported from others";

logging.basicConfig(

level = logging.DEBUG,

filename = "BlogNetease.log",

filemode = 'w',

);

logging.info("logging output info from BlogNetease is OK .");

print "BlogNetease import end";

测试出来的结果很是诡异,好像是子文件再次配置的logging,把主文件的logging文件劫持了,然后接下来的输出,都输出到子文件的log文件中了。这不是我所希望的,每个py文件都有自己单独的log文件。

2.后来无意中发现,对于子文件,完全不需要多余额外设置,只需要:

import logging;

然后直接使用logging.info,logging.debug函数,即可实现把日志内容输出去,具体输出的形式,取决于主文件用logging.basicConfig所配置的形式。输入的位置,即主文件的log文件。

这样,至少可以很好地实现,将多个py文件的logging内容都输出到同一个主文件的log文件中,并且格式都是设置好的,统一的。

【总结】

主文件设置好logging.basicConfig相关参数,配置好StreamHandler等内容后,子文件,只需要导入logging模块,然后调用logging.info,logging.debug函数,即可实现将log信息,都输入到主文件的log中了。

python输出日志到文件_【已解决】Python中,如何让多个py文件的logging输出到同一个日志log文件...相关推荐

  1. python如何读取log文件_怎么解决Python读取log文件时报错

    怎么解决Python读取log文件时报错 发布时间:2020-05-23 14:15:56 来源:亿速云 阅读:157 作者:鸽子 问题描述: 写了一个读取log文件的Python脚本:# -*- c ...

  2. python 折线图中文乱码_彻底解决 Python画图中文乱码问题--Pyplotz组件

    1 源起 自从开始学习Python,就非常喜欢用来画图.一直没有需求画要中文显示信息的图,所以没有配置Python中文的环境.由于昨天就需要画几十个形式相同,只是数据不同的图,并且需要显示中文信息.如 ...

  3. python环境配置不成功_怎么解决python配置环境变量不成功

    怎么解决python配置环境变量不成功 发布时间:2020-08-25 16:02:46 来源:亿速云 阅读:94 这期内容当中小编将会给大家带来有关怎么解决python配置环境变量不成功,文章内容丰 ...

  4. python中文显示不出来_彻底解决Python里matplotlib不显示中文的问题

    在很长一段时间里用Python绘图,matplotlib都不能很好的显示中文,起初是认为我的pycharm里的设置问题,但是发现同样的问题在spyder里也同样的出现了,虽然有的地方可以用英文实在不行 ...

  5. python不是内部文件_已安装python,但是出现‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。...

    解决方法: 1.打开python shell查看你的python安装路径(黄色标注) >>> import sys >>> sys.path ['', 'C:\\U ...

  6. java 安装后找不到文件_(已解决)jdk安装 系统找不到文件C:\ProgramData\Oracle\Java\javapath\java.exe...

    jdk安装好之后,也配置好了环境变量,打开cmd输入javac可以跳出相关信息,可是输入java却一直提示:系统找不到文件C:\ProgramData\Oracle\Java\javapath\jav ...

  7. python编码问题无法复现_彻底解决Python编码问题

    1. 基本概念 字符集(Character set) 解释:文字和符合的总称 常见字符集: Unicode字符集 ASCII字符集(Unicode子集) GB2312字符集 编码方法(Encoding ...

  8. python编码用什么软件_彻底解决Python编码问题

    1. 基本概念 字符集(Character set) 解释:文字和符合的总称 常见字符集: Unicode字符集 ASCII字符集(Unicode子集) GB2312字符集 编码方法(Encoding ...

  9. 已解决Python调用免费申请的百度图形识别接口案例

    已解决Python调用免费申请的百度图形识别接口{'error_code': 18, 'error_msg': 'Open api qps request limit reached'} 文章目录 报 ...

  10. 已解决Python向数据库插入数据的字符串中含有单引号或双引号报错

    已解决Python向数据库插入数据的字符串中含有单引号或双引号报错:(102, b"Incorrect syntax near 'S'.DB-Lib error message 20018, ...

最新文章

  1. python django web典型模块开发实战下载_Django实战 Python Web典型模块与项目开发
  2. UTF-8和BOM的一些说明
  3. 如何先执行input (checkbox,radio)再执行函数
  4. 嵌入式指针embedded pointer的概念以及用法
  5. win10下openpose1.5安装
  6. java动态录音_java实现动态录音,声卡有声音进来就自动录音
  7. 利用支付宝和浙江图书馆网站免费获取知网文献(亲测可用)
  8. 注册界面模板HTML+CSS
  9. 向量的内积(点积)、叉积(向量积)
  10. AR law : Privacy
  11. 深信服python开发工程师面试经验,深信服软件工程师面试经验
  12. html书写表单laber,laber(labelhood是什么意思)
  13. 《机器学习基石》学习笔记 1 The Learning Problem
  14. 马尔科夫毯(Markov Blanket)
  15. 《Microduino实战》——2.7 总结
  16. 超级计算机预测2月有雪寒潮,科学网—被证实的预测:寒潮影响马上结束,倒春寒要退场了! - 杨学祥的博文...
  17. IDEA上的项目文件不慎删除了该怎么办
  18. python 工厂设计模式
  19. SQLyog-12.5.0 64位 中文 破解版
  20. 【英语】罗塞塔第一遍学习总结

热门文章

  1. 拟真机器人拯救者奖励_冒险岛新版本拟真机器人什么样 新版本攻略
  2. python as_Python with as的用法
  3. linux 6.5 gcc包,centos6.5离线安装gcc gcc++ rpm
  4. jQuery获取HTML标签自定义属性值或data值
  5. xss劫持 HTML 表单,XSS 之 form表单劫持(通用明文记录)
  6. html5哪个输入字段必填,HTML5:如何使用“required”属性和“radio”输入字段
  7. php 扩展 mysql_PHP链接MySQL的常用扩展函数
  8. js判断wifi_使用JS在浏览器中判断当前网络连接状态的几种方法
  9. bat/cmd 抛出错误码和捕获错误
  10. geth bootnodes