python 使用logging多线程写多个log文件

import threading

import time

import logging

import logging.handlers

LEVELS={'notset':logging.DEBUG,

'debug':logging.DEBUG,

'info':logging.INFO,

'warning':logging.WARNING,

'error':logging.ERROR,

'critical':logging.CRITICAL}

LOG_FILENAME = 'test.log'

LOG_BACKUPCOUNT = 5

LOG_LEVEL = 'notset'

def InitLog(file_name,logger):

LOG_FILENAME = file_name

handler = logging.handlers.RotatingFileHandler(LOG_FILENAME,maxBytes=10*1024*1024,backupCount=LOG_BACKUPCOUNT)

#handler = logging.FileHandler(LOG_FILENAME)

formatter = logging.Formatter("[ %(asctime)s ][ %(levelname)s ] %(message)s\n")

handler.setFormatter(formatter)

#logger = logging.getLogger()

logger.addHandler(handler)

logger.setLevel(LEVELS.get(LOG_LEVEL.lower()))

return logger

class t1(threading.Thread):

def __init__(self,threadName):

threading.Thread.__init__(self,name = threadName)

logger1 = logging.getLogger("thread.a")

self.logger = InitLog("thread1.log",logger1)

def run(self):

global i

self.logger.info("test1")

while True:

print '*************hello t1*****************'

self.logger.info("******hello t1******")

self.logger.debug("t1 debug")

self.logger.warning("t1 warning")

self.logger.error("t1 error")

i += 1

print i

if i> 10:

break

time.sleep(3)

self.logger.info("test1 over")

class t2(threading.Thread):

def __init__(self,threadName):

threading.Thread.__init__(self,name = threadName)

logger2 = logging.getLogger("thread.b")

self.logger = InitLog("thread2.log",logger2)

print "self.logger = %s" %self.logger

None

def run(self):

global i

self.logger.info("test2")

while True:

print 'hello t2'

self.logger.info("hello t2")

self.logger.debug("t2 debug")

self.logger.warning("t2 warning")

self.logger.error("t2 error")

i += 1

print i

if i > 10:

break

time.sleep(5)

self.logger.info("test2.over")

i = 0

p1 = t1('p1')

p1.start()

p2 = t2('p2')

p2.start()

python多线程写日志_python 应用logging多线程写多个log文件相关推荐

  1. python log日志_Python中logging日志的四个等级和使用

    1. logging日志的介绍 在现实生活中,记录日志非常重要,比如:银行转账时会有转账记录:飞机飞行过程中,会有个黑盒子(飞行数据记录器)记录着飞机的飞行过程,那在咱们python程序中想要记录程序 ...

  2. python多线程怎么写日志_Python日志记录在多进程下的使用

    1. 问题描述 项目中,使用RotatingFileHandler根据日志文件大小来切分日志.设置文件的MaxBytes为1GB, backupCount大小为5. 经查看,发现日志文件的大小均小于1 ...

  3. python多程优化_Python 基本功: 13. 多线程运算提速

    小编在前两天开通了一个 Python 金融的专栏,顺便用 TuShare 下载了几只 A股的数据,有兴趣的小伙伴可以去看一下: 多多教Python:Python 金融: TuShare API 获取股 ...

  4. python多线程实现方式_python中实现多线程有几种方式?

    我们都知道,代码编程不是固定的东西,而是非常灵活的内容,根据不同的内容,我们可以拓展出很多条内容,最终目的还是为了可以实现结果,给大家举例说明其中一个最常用的多线程吧~以及实现的几种方式. 1. 用函 ...

  5. python多线程控制暂停_python中的多线程编程与暂停、播放音频的结合

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦s ...

  6. python如何自动缩进_python word 自动排版写码时应该缩进使用 tab 还是空格?

    对于程序员来说,其实Tab和空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格 ...

  7. python多线程写日志_python 多线程logger问题

    展开全部 因为logging是threadsafe的,但不是process-safe(应该没有这个词儿,只是为了便于理解)的.这段代码就是多个进程共同操e69da5e6ba90323131333532 ...

  8. python爬虫用多线程还是多进程_python爬虫之多线程、多进程爬虫

    多线程对爬虫的效率提高是非凡的,当我们使用python的多线程有几点是需要我们知道的: countdown是一个计数的方法,正常执行它,我们一般使用countdown(10),就可以达到执行的目的,当 ...

  9. python 线程 的类库_python类库32[多线程]

    一 python 多线程 因为CPython的实现使用了Global Interpereter Lock(GIL),使得python中同一时刻只有一个线程在执行,从而简化了python解释器的实现,且 ...

最新文章

  1. RedHat 年度报告:只索取不贡献的开源消费“大户”不受待见
  2. Thrift Direct Memory OOM问题解决方法 内存溢出问题
  3. stm32 温湿度_基于STM32单片机大棚温湿度检测无线蓝牙APP控制设计
  4. PIL 转opencv
  5. 的远程烧写_农用气象环境远程监测管理系统
  6. 拥有一亿会员的爱奇艺如何搭建大数据实时分析平台
  7. n个结点,不同形态的二叉树(数目+生成)
  8. 【STL学习】优先级队列Priority Queue详解与C++编程实现
  9. RedHat Linux下获取snmp信息不全的解决办法
  10. Discuz2.5菜鸟解析-2
  11. [强烈推荐] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析
  12. 如何成为一名真正专业的程序员
  13. c#如何取得事件注册的方法
  14. Java视频教程免费分享
  15. stm32h743单片机嵌入式学习笔记5-液晶屏汉字库原理
  16. Default interface methods are only supported starting with Android N (--min-api 24):
  17. Onedrive如何申请免费的学生1T空间以及查看剩余空间大小
  18. 一种增加图像自然饱和度的方法
  19. C++stoul、stoull 函数用法
  20. OHEM,Focal loss,GHM loss二分类pytorch代码实现(减轻难易样本不均衡问题)

热门文章

  1. wordpress漏洞_用软件工具扫描WordPress / Shopify主题恶意代码以及漏洞分析相关工具...
  2. win10桌面倒计时插件_win10 桌面如何做到清爽好看?这篇教程给你答案
  3. php输出图片没有,ThinkPHP里无法输出图片 设置响应头
  4. 我的世界java版游戏崩溃_我的世界:MC不一样的冷知识,游戏崩溃?没想到你是这样的F3!...
  5. oracle rman恢复表空间,Oracle数据库RMAN恢复之表空间和数据块介质的恢复
  6. 使左对角线和右对角线上的元素为0
  7. 【计算机组成原理】定点运算器的基本结构
  8. 实验7-3-4 字符串替换 (15分)
  9. 制作唐诗网页代码_分享FrontPage制作网页的几个技巧
  10. html修改原生checkbox选中的颜色_[三分钟小文]前端性能优化-HTML、CSS、JS部分