免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3856 | 回复: 16

logging模块疑问 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-05-04 15:41 |显示全部楼层
       python的logging模块是不是多个程序同时调用模块的时候会有问题啊,
我现在遇到一个问题,就是2个程序同时执行,在程序走到日志定义模块时就报错了。其他人有遇到这个问题的么,python版本是2.7.

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
发表于 2014-05-04 16:05 |显示全部楼层
两个程序有交互吗?logging是很通用的,两个程序的logging是独立的,要出问题也是程序BUG,比如两个进程写同一个文件等等

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-05-04 16:08 |显示全部楼层
稍后您在帮忙看一下,我在写测试程序,模拟报错的程序,晚些补上。谢谢哦回复 2# timespace


   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-05-04 17:27 |显示全部楼层
#!/usr/bin/python
#coding=utf-8
import logging
import sys
import os

logpath='/home/infor/test/'
logFile=logpath+sys.argv[1]
cmd = sys.argv[1]
if os.path.exists(logFile)==True:
        os.remove(logFile)
print logFile
os.system('''echo '123'>%sss.log'''%logpath)
logger = logging.getLogger()
file = logging.FileHandler(logFile)
logger.addHandler(file)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
logger.setLevel(logging.NOTSET)
file.setFormatter(formatter)
logger.info('%s文件生成测试'%cmd)


我的程序就是类似这个形式,现在遇到的问题就是程序跑了一半出错了,根据日志模块打印的日志没有生成,os.system的日志有对应的命令。
回复 2# timespace


   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
发表于 2014-05-04 17:55 |显示全部楼层
回复 4# 初识orcl
无法重现你的问题。把logpath改为‘./’,执行:
  1. $ python2.7 test.py tmp.log
  2. ./tmp.log
  3. $ more tmp.log
  4. 2014-05-04 17:51:25,723 INFO tmp.log文件生成测试
  5. $ more ss.log
  6. 123
复制代码

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-05-04 18:10 |显示全部楼层
我不是特别懂python,大大,是这样的问题假如您执行这个程序,同时跑3个,参数分别为a.log,b.log,c.log  然后并发执行,就可能出现其中2个跑了,并且生成了对应的日志文件(例如:a,c跑了),b的没有跑成功,就是b.log没有生成。我这个程序出这个问题也是随机的,不是每次执行都执行,我现在定位问题是logging模块,今天刚想明白,可以在logging模块加上try except来验证猜想,等在出现问题,看看异常处理部分来证实.回复 5# timespace


   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
发表于 2014-05-04 21:25 |显示全部楼层
回复 6# 初识orcl
可能是某个地方有race condition,当重现问题时,就接近真实原因了。


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2014-05-05 06:54 |显示全部楼层
  1. os.system('''echo '123'>%sss.log'''%logpath)
复制代码
如果你没动过这一行, 那当并发的时候, 这个写可能会有问题.试着换一下这里看看.

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-05-05 09:16
恩,这个是我的问题,单纯的写一个测试程序没注意这一点,真实程序不是这样的。没有%ss类似这种。回复 8# q1208c


   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-05-05 09:17 |显示全部楼层
大哥,你起得好早啊回复 8# q1208c


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP