python的logging的简单使用
用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所以Python引入了logging模块来记录我想要的信息。
print也可以输入日志,logging相对print来说更好控制输出在哪个地方,怎么输出及控制消息级别来过滤掉那些不需要的信息。
1、日志级别
import logging # 引入logging模块
# 将信息打印到控制台上
logging.debug(u"苍井空")
logging.info(u"麻生希")
logging.warning(u"小泽玛利亚")
logging.error(u"桃谷绘里香")
logging.critical(u"泷泽萝拉")
回显:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAABBCAIAAAAi4s2CAAAHoElEQVR4nO2dTW7qMBDH33mSPduyq4TYATukx64VPUA5RW/AqrcoEkfhKrxFghl7Pjx2TBz65i9UQfxJ8+vM2Jmkf9qx9Pr5/fP9+do00ZrN6+f3z8/X33jNiQt+5b9fPz9ff7mav+YrZ+hP7Ql4ev38Pp1Op9Pp950MDsFf/JWVmhaCpv9QhqCpsgzBKer68V57Cp7wfArO0BCcoqIn2FW4fryTL7mtvj5XB37k5qAcwhCcojQ2BlIoNNeggPGKoqM5rrSUhuAUlYSg8F7Zp75I4F4/k0BxBA+bt+tusfb38w6bt+vmxfv48X5ZzsI64I/JlTbNy3n/dt2vDrc+m/nKfQxauYZyq3uFW6vzvM4eRzCrPGXg0h1XNhS8qjxcHQTXyy2JoI/U9rhcBdUgps1scdm/QZguu+29B3Tamtnist8eZ+CI2KqZr3zKZ8fdUA7ylI2g3qpl2Dm5z+dHcN7B93Lev0Hb4yHYzI67/mPT13w5Q4B0CJKtYOfVVRzB6Mf2Fr3BN9n9y+sJEsHU94HiCN7P9A2L7pQ7BB2OhHd2CM5XzjneYGoOmx7ZFASJVs18dfUrY62XW+yd4R8Pdt9dk/7l/xGSRd5BFH4I0+iUavkwc/BNcByTxEEWDKG0gkloBkpB8ObsOgQBT/3pD0jyojoUtJ3nTTNbXHaLdc+QFkHcar3cRg0Pi+DHu8MX9nPY3OPO3sreUBOK8C9BM41WZ+cyjuhLuTkEFOYhKA+tQHC2uOxXh6Y5bFzABxCc30PALuBzv19nBcl1w3neWdPtcZaIIGoF0bmbIoU3DMzn3cz7X0RZBPpMdsSa4EwwMFF7xvUZnQPnfwWrjDssguD2OOuCMPez/6VzAV9QhJYvgODNSxKCuBV2xEoOuGoRG8xPTD80lNKeBT5U04++tI3RI8SCZAXyCCk1gstVx9Nh060JuqDQ2wcJzE8YC96dF4CpYzoVQb9Vv1gGUVcJBEeygnqYoqGVEkHOamY73KRJYikQvHEGPO+2Px80Ov0ZwgYSbsq4s7hebi+7MJiLGpugVRBj4YmxsSCDCxHwQevOFLUUvlDCcgRKb7G4hQW3thB6ji4pNDN8JIJuzQG2iIMlcOufkqDULYpDz+XvOctb01yr9nbuyQVQm45gOBP/awpFrb801q+IoVLjNvmgTF7QXBOVKo8XQ9A0ppTxU5Ij1jhofVscFOpf5BCG4OSkNB7jNMwIOlNlCJoqyxA0VZYhaKosQ7C8UvfSyKJSlYtIv6zOkCFYXkUQFOqn8pq6SlWuZEvJECyvglcUNLQl7aoot/30FYbLECyvgDmM4BDmhI8aU/qsCPZJTVQaHJedLxeFfaJ7ALhWYyrjai/2X9CRYXNFAqHx11xN8ojSESu3l4u7ZjWCwrVUKjtfLoLpVf2lNiq/Jmg1sorkP7c+N8pwMBqicXXwKNlWEI7yUFtYFEE+WctL3BeTTYQOR1Z25l9qLEgW6WGNri30H4U5P47CogiC7HyhiMivAdlWQoedJp6CH9DAvQ/q41+sUJ+szCnVpQpGtLgL7pQZC3qcueM+WFwRvh8KpnIJHd6bTzUFP3BegRfDHzVnNIA4Wj/aW3QgmdfpxoK4DlcUR5DpMDbD+in4ZPwUdWpKE8XREDVseIaab5HXNkMlHTHMzheK8N1GMBdQ6DBjhmOm4AuEkcdxhejxDDhSHXHeKENUOhYM7qAjE/ex+QE2TOgwY4bj34jUPhLBIdX0lZN4Ha7yK2J6UwYX+Zsymladpp+CL4Tz+CD+qDlOdjXEyQ6Zz0CV2JqmsvPlotZfdnDPYMCt2mdIwX8QgtgU6T21voJ+PqVkF+jKKzUo1Du+gD+5VTQK5AaaoiM2JenKX1HgTrnQT3Sg1FZRmRU0/V8yBE2VZQiaKssQfDJFdxkHdiscyasclSE4dQlrF3k5El3VDlkyR+eplyH4BIpuNHL19eZqoBWU68syBJ9AGuw09Uv57rIxgBbB/voVup6hT9x3peHzh7oXvEbMXIkRpgFHDO8QQOkItTTwuW9RRylbOKFU6YLJEYdvYusu0Pm59W3bHjbUQwSpPHuBgNQiYRq3UuLB/8+LYMv7x9TdY41XJe3lg3a/oVQIkv965F4k5tkXRFCYRusnTgv5LxU1BMHgTVJIBy2WZgjuYFCagTsp7fMFuby9aJ59KQTlabT8g/+jCE78ToBOHIIyIiTBsnvVuFSyZzxVpZQP+mVzlqJ59sUQFKchPPg/H8GP+ncCdML2KdVRKrHQVMME543lVAJBMc9+JAT5B//nOeKJ3AnQKckdRy2cMIpcGfp0YcTUb1cMwZbJsx8HQSEkHYBg/TsBOJPDoRAN+ISx9K1GRxA5FKhonn25WJCdhvzg/wcgWO1fkgQhnVyH6wQXRW2b3NvDEWxdYBTdlKHy7EtuyjDTkB/8nx8LTuNOADLs00CQtMIQxhKqJbXipN+apv/VaiRxX1wDsjsv0tY0MQ35wf/ETji1hp3snQBkIJhqh/RwyIzKvT0WQVMtBV6SM3JBfbITeRQ9fO5nhqHFMgSfQHnWRdNDBjHDJxPIEDRVliFoqixD0FRZhqCpsgxBU2UZgqbKMgRNlfUPuO6nJRPJJl8AAAAASUVORK5CYII=" alt="" />
上面可以看到只有后面三个能打印出来
默认生成的root logger的level是logging.WARNING,低于该级别的就不输出了
级别排序:CRITICAL > ERROR > WARNING > INFO > DEBUG
debug : 打印全部的日志,详细的信息,通常只出现在诊断问题上
info : 打印info,warning,error,critical级别的日志,确认一切按预期运行
warning : 打印warning,error,critical级别的日志,一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”),这个软件还能按预期工作
error : 打印error,critical级别的日志,更严重的问题,软件没能执行一些功能
critical : 打印critical级别,一个严重的错误,这表明程序本身可能无法继续运行
这时候,如果需要显示低于WARNING级别的内容,可以引入NOTSET级别来显示:
import logging # 引入logging模块
logging.basicConfig(level=logging.NOTSET) # 设置日志级别
logging.debug(u"如果设置了日志级别为NOTSET,那么这里可以采取debug、info的级别的内容也可以显示在控制台上了")
回显:
aaarticlea/png;base64,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" alt="" />
2、部分名词解释
Logging.Formatter:这个类配置了日志的格式,在里面自定义设置日期和时间,输出日志的时候将会按照设置的格式显示内容。
Logging.Logger:Logger是Logging模块的主体,进行以下三项工作:
1. 为程序提供记录日志的接口
2. 判断日志所处级别,并判断是否要过滤
3. 根据其日志级别将该条日志分发给不同handler
常用函数有:
Logger.setLevel() 设置日志级别
Logger.addHandler() 和 Logger.removeHandler() 添加和删除一个Handler
Logger.addFilter() 添加一个Filter,过滤作用
Logging.Handler:Handler基于日志级别对日志进行分发,如设置为WARNING级别的Handler只会处理WARNING及以上级别的日志。
常用函数有:
setLevel() 设置级别
setFormatter() 设置Formatter
3、日志输出-控制台
import logging # 引入logging模块
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') # logging.basicConfig函数对日志的输出格式及方式做相关配置
# 由于日志基本配置中级别设置为DEBUG,所以一下打印信息将会全部显示在控制台上
logging.info('this is a loggging info message')
logging.debug('this is a loggging debug message')
logging.warning('this is loggging a warning message')
logging.error('this is an loggging error message')
logging.critical('this is a loggging critical message')
上面代码通过logging.basicConfig函数进行配置了日志级别和日志内容输出格式;因为级别为DEBUG,所以会将DEBUG级别以上的信息都输出显示再控制台上。
回显:
aaarticlea/png;base64,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" alt="" />
4、日志输出-文件
import logging # 引入logging模块
import os.path
import time
# 第一步,创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等级总开关
# 第二步,创建一个handler,用于写入日志文件
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
log_path = os.path.dirname(os.getcwd()) + '/Logs/'
log_name = log_path + rq + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关
# 第三步,定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# 第四步,将logger添加到handler里面
logger.addHandler(fh)
# 日志
logger.debug('this is a logger debug message')
logger.info('this is a logger info message')
logger.warning('this is a logger warning message')
logger.error('this is a logger error message')
logger.critical('this is a logger critical message')
回显(打开同一目录下生成的文件):
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkEAAAAWCAIAAABIct+cAAAG/klEQVR4nO2cy07jSBSG80qRWPAm2bHK1i+QzXgwuLmYhnZP0+0AhqRxWE0kNpbYZhNFoyyx0GwjzSL7Ib5qZuFLXXxcdtKEXDilb9FU6hRVwa7f/6ly1/7DggULFixYNrPUXqYegiAIgmwEqGEIgiDIpiLSMMuyft7fd7vdTqdze3tnmub1zc3V1ZXRbt91un/9/c/KR48gCIJ8ZEQa9vP+PkpLGEVhmNDr9RzHubm9QxlDEARBVohIw7rdbhRFfhD4fuD5vuf5rue7nt/r9abT6fPz8/WNufIJIAiCIB8WkYZ1Op0oiv5ki+t5vV5P0zRN0y50feUTWFceG7Vme/XDQJBNZGIpkj4oaTbsq3J/smg/Y12xh3TNwCzrDVlHRBp2e3sXRZHn+7QJcz3Pdb2Z6wVBeH7xBe73oVlLym5rlNU/NoDKpL6uOKRmpNXT+MbD/OFFlWRUtLpUavmk7NaysvcoHGfWLWrYtjAwpaSolpPVj3WgMqlnVkPHltN4fj11bFky7aLAim3I8LJmHPNFDfuqlBVjXD6LpTDW+S+Wp4KGCfpJNMw20m8m07CBKXHyhrwNBVf41HuZerZBXVfxxWaM43pSoL+LSMNM0wxzPiwrQRCenZ9Do3ls7GhP8b8fmqkMOK2dVCrYylqt2dijVeSxkUnCIuFgpffy0Kxlo5q7pdfeg2UyN076U9Sw7YB6YB+Y6Yo/sRSy9tGVkmTqBn2jjvVs0SctE9JVGAys1qZkwV0kygaGIZrFm2ApUklRbJsWV6jI/XGFfkydaiP3J8O+KhnjWMOSf6/+qtsyRFd4DKVh1MXGXo22IeX/OiINu765CcOIcmC+63kzN8YNglA7+1w29MdGbJtGWp2s6U5rhzEubV7DspYLhIOVTmuHc2/ztWzviZ1WOk74U2RrSB/qGW/EJ6xsXsNoF8U5OcYiFIiHoM3EUkrMygJRzBNx+SzekmFf5X91UYov8YWwmpb349gy5hLfHegKJx/pAy/v1egQ8AlDpGFXV1dhKPJhp9pZyaAzg/LQJCm4nOpwPz4pu8RyxVHzhAOVI62+o7X2krwf17hCy9ix8XlIYJwETuGAcCY7qgDmD1k7MgsyMOl7ibszuR9JyouNypsh4A4Xt3FsWbEtg1iKopGXRzm2nCjThLIyRCEKZ/G2OLbMdm4boF5OLMW0+qrct3VwMGX92IYkKaosmTbJqTLmbAVX1wegTMOo9AYQAu9uijTMaLfDMHI9L9sDS5i5rzM3CMLjk1PRiEdaPc22PSm7c2lYtuTH9XOFA5UPTbJlNdLqrGeq3jIZSSo2+XFSZBrG7reRrCOViow1EjVszXFsOU1xcM+DpRoGLo55u5O/w0vaDEwpy7oQEQIoj4LCh301U9CiWbw1rEfMuyXqa0lkFfZP4n7GumHqkqkb0BYLGrKlIdawOGM8BOsl+NMXsYb9+GGEYVjsw4Kj45OisT4pu8zhi+pGilGOdKH/RR/GbnGJwoUt0yFl6c3cOJlmqQFlxClNhHL10CYcsj4M+ypzdqO6D2O0gUr0M9lIuJ/yNqxLEy8QC0SxuVNoFsuA6A2ctMwGnFlDeArF/diGpA/SbU70Ye9IaS7Rzj1V5B6/+DtCpGGX378HYUjsl+u+zlJeZ34QqEdH4GjaezU+t8as0aINLdhyVQ6HK0davaKGCVu+TL1Mw8TWUKhhu60RatgmAewkMzIg2g8rcmxgZh8wcOI2rL2oqmGVo7LVX+w7355EV/ICxuSa6HOJ4G5/QT8Ty7CH+bP1VBRq2JKosB82sRSp+GIDHmtEGvbt8jIo9mF+EByqn4DRMOcvMijhya3X5T6sejhcSR1rFOcS4ZbO04g0Tn47OE5SWZxLTAaPucQNATJDjG6VblkBDgbO7OdOXlRqk9vQAiiPovbDhg6JSqb2nj5sSrxRPo+qD0DnpFpOwaMG1E8yC9Swd6eChnnJWyvpn/KXfNjXP74FQUi818x9nc3+fU3wg0A5VIHRkJer2HenyNtUvMLxIkT1QPxW9XC4khys4E4YVmhJnengzBMwR07DvMIzHWRGeKZjjcmtmFQykD/4EMPfqFQPJLZgm6fILRV2Tl5TE+lKeRR4poMeQH4WSyDZ/KDWL0FmT/B+WIV+Yg2bgGfxUcOWRDUN85LrM32BjyrAMVSRhulfvwaByIftHxys/EvZEjCX+JGokotber5uzYi1BFTH5DhJTtEhDZtU7gd92JYg0rALXfeDQIC8r6x8AhuL09phjFreSiJbSpX3q5b4DhaCbBMiDTu/+HJ2fq6dfT7Vzo5PTo+OT9Sjo0P1k3Ko7h8cyPvKb7/vr3wCGwz1X1WhgCEIgiyASMMQBEEQZJ1BDUMQBEE2FdQwBEEQZFPhNOx/oM1SLO35XaAAAAAASUVORK5CYII=" alt="" />
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxoAAAB4CAIAAAD69hPJAAAehklEQVR4nO2d268cx3HG599aviuvAiIg735ZBHkLDMRGDMMBIjswFGuP5EiBlMh2IEe0E0VEZHhjRw4jWpREXQ7v5KHO8k6KFClSFm0DAZxIm4ezl5nuquqq6p7Z3dnvB4LY7en+urr6Vtszu6eaAgAAAACADKpVGwAAAAAAsNkgnAIAAAAAyIIOp771/ReF/wEAAAAAwIIwnHp1//Yf/fGfnPj4wWOPP3H0+r3HHn/i3ycfP/b4Ez++cOOxx5/42xMXvnf89Jnjh1diKwAAAADAGtIIp/7vyy9fOHPl8me/23vw6PS937x35+GxW5/+4tonRyYf//PFGy+dvfrksZNPvXXqmSe/sipzgY3x8NDOZNVGAAAAAD2nEU7d/f3/HN67sf/w0YX7j07e/eyd2w+O3rj38yt3/m3/1ssXr794+spf/dcHL324h3CKYTyshuP25Cc7h2by42EVMxwzFxpE4dVk5xBCLgAAACCHRjj13p2Hb1z/5MTVW29duXl0//r44tUj5yaHT1364e7F50+ce+qtU3/+2hs/2b1Ah1PLnby+Oy9Sgy17PAySJjuH6nGBtTiXuLSqHuioctYsqpWm7VxItBlOSaEPU7XidArhFAAAAJBJI5x6df/2+3cfnr3/+e4nn7175+GbN+/9x7W7Rya3X9m78dK5a8/sTr76s1+f/uQhFU7V9u3xcB5pTHYOzaOWZmJVDYfDekCzvOwqTiZOp+NhFDTpc3JpsZ31q+2GU/UTqsiweXojDIzOr6Tr3AEWAAAAACQa4dQLZ65c+PTRscs3f/XR9fHFq6+dm/zk1Ec/2t17/sT50dtn//rN3T995efX7j1I3eybxyGTnUPNU53ggKgZTi0uOoqTidKxiyYnFRxRdsolOqIZTtVsXJhIB2Kz2GpVZgMAAAB9YBlO/eGLL144c+X0/d+8f/fh27c/PXrj3vjq3SP7t1/Zu/GDc1efO3XlO++e/9r4+BdffpkIpxbHNs3oIog+grfLiGZRylKcSJzsHDq0s8PfLEzlrB/iLO0g7Gyo1oMtonjj9uUO1QaWuT0L59BnT9LTU9RzU8Odg9YjoAIAAAC8LMOpq5///qeXbr1/9+EvL117/cKVV8/uv3Lq0g8+vPj8ifOj42e+/euTfzl++xuv//dnjx5J4dRk51D9ppIlnAp2fVNxInE8rBqPQfE398ScQVpsZ7P+ZUzT1F+mN+7JWe+r1WpoFlU8OxU9R3VQZhYg4juAAAAAgJdlOPXmrfu/vHb3ndufHrt9/z+vf/Kzy3f+df/Wjy9e/8ez175/cvLdDy596+juc++em06nXDgVBgj646VGEDOPOTJPp6K7iWxxMWcjjbSzkW1+LBc9Zj9rUbIN7NP3jRq46Ef/zb5F5YvzNtocAAAAAKRYhlMvX7z+9u1Pj928f+T85X85s//yyb1/+PDCcyfOfe/4mW8fO/mNX3341SNH/+nEGe50in4yuxkxcQ8/0QdR6uJshcpwSsxZT5MPzMRw6tDORBlOiQjhFPkAGH061YgK6+WITgQAAABAimU49XenLr/z8YM3rt8bX73z2v7tw3s3f3j++t+fvjza3f+b9y598/j5r43f/uD2/Sl5OhVGO1EqFXokTqf0xenEmqh8s4/OOZnUb9Ytb0BGdi4T+Zt90RcUc272TXaGOztUOJX65amGlUTGWRCLiAoAAAAwMQunfveH/33x7NV3Pn5w9Ob9g6emfrS798L7F5595+xTx89859jJbx794M8Ojz+6c48+nYr25ui3m4jHtsMAp4qy6ovTifSvTuly1p6SCo6UiDYG4VTgkVrlS1Xro+g11eE4flaK+3ai8OyUVBAAAAAAambh1N7D3z554uJ337802t1/5uRkZ3eys7v/9O7+0x9+9OzJybMnJ09/8NFf/OLdg8z4VfQy2G/21UKf+HCpEV4tLidPmhBOAQAAAJmEfwJ5Op1Orl7/7NEj4R/CKS/Nn4TCD2YCAAAAvYAIp17/6TPPPPkV4d+Z44e7N7QnMLcQAQAAALC5EOEUAAAAAADQg3AKAAAAACALhFMAAAAAAFkgnAIAAAAAyALhFAAAAABAFginAAAAAACyQDgFAAAAAJAFwikAAAAAgCw04dRkNOD/Vsl4OBg1//ReF39AN6hmPKwaVjRNm4wG0t9jacW8pTmT0YCwjS6xwr8/HPTjIjX6O8kdunFhg1BRo3Pnf4Ba4XAAAACgHMrTKTpemda2rtkLau+bh2PNsGYwGnGiCnPmlQmb/MK0IKCZjAa1P7JM2lYNx0Kb1fYdvFSFIDU/Nv5icj2Sbdi4NM1ppxwpVYSmEKYc2BlHg5PRwN/RxN/VriUtO3f+p6jnr0g76x3dsHGekNHdAAAAth06nIqOc5jNdhmozLewOJxa5olPuXQnNyGT0ZAKPabLpMZGPBgOudMpyTanec2QZzSsVVfbuFMclKjXPx42IpzJaEA1w8d4OBiNhoPRaBi6ID7YE90YxlMLr+ZYWO/l2euaXBBOBb6t5eI6epmQ60YAAABbi3Q61TjGOaD5wX+5E1ERQhRfUSGL4+bgeDiLSYZD4XRKc8cnYZvPvOlyX547cO4d+Z5VdLVWOXUXsJ7mvcc6XoR7y7uNpJ3SDV/Wznohj4XBqDqIk4fjgyOvybKOZtfHMb7Y0blGAgAAAPLNvmiPb8Yo4+FsB6t9rA83pPonfmpLtp8IzPbY2ebP7H6T0WA4nmmTh0GD0SRpm8u8aW2Hn1VSVdUs9OP3aiKcanqVfDaMOH3Rkj4ii456FG5sxFPhnUrn0U/dNYser597BTf7FimLKsWOrifgfAoAAIAL+dmp5vYSvxsOB8Mxvd8R78lnfxwHArWHZKrBILobNRhNJtEtt+bzSIvitG213L7Ts2Ht2a7gkflqdrwSmhyfpjUPfYTHgZx2TvmnjKL7tSPiPihddePeWf2C2cL4RuNBTy7OJOfBU9Bv9XAq1dFhf+N4CgAAgIfUo+j1OyfNLX08Gk3inTfYjxoRWJnnk5ZnP8PhPKAbD4fjg9ggOIhYPtITb59p25zmDcf1u0zxcc6C4AuA/HNlbDgVt9UEd/wUHd8ImcKauWe+3RYuA+8wMJ7JBqdT9a8gKDq60BkaAACAbUbxzb7a3bWQgw2L25TD+3FkyJJxHjAeVsNRvNeHX6pTn05RdpjNG49GE+57evGvStTeRjUFj2CLz061dzo1GQ0HdBTMHYwduDJyqN1C8Tn42v25ZjhFftVP6OhGAk6nAAAAeNCHU8yjRfLpVONchXl2yrGBzU0ajMYj4nRqfLAPDwbi6VTSNrd5rnCq8VzQLBJtHqqw3+zLsDMZqwxGEyYXeydyMhosfZ9v4bKeeqBcD6dqMfXsuHJxKd3RwbNTCKcAAADYkcKp2TZa/9ZWcEiVDqfKf7NvfihzsEdOqHCKuNm32FfrR1iBbcQJl/O0Qn2zrxGbzEKk2OwpYWMzWGnnVOXgO5SkuPS8XBT7ZVgYhlPLQLrm30asVH8snuhGfLMPAABAeaTfnSJ3ltmevvjKVCqcEh9HyXhUZbZXBtt6w+z4bKX5qHKyfrd58unUIiyKHdwMD7T1e+zUfLNPzto4G0vUX+KZpPRPXyyfngpDTlX9eHAKAACAky7+Zt/B5/94P17R71A3YkDOttWZ10Awb4PsXH8L18RIAAAAGwr+BDIAAAAAQBYIpwAAAAAAsqh+CwAAAAAAMqg+BwAAAAAAGVTV1/fwD//wD//wD//wD//wz/+v+vreqm84AgAAAABsMAinAAAAAACyWIZTVYVv+QEAAAAAmEE4BcBWUP/N0lXbYmNzLQcAbA8IpwDYCnowwXvQBABAXwnDKeGDoPDpkMts+kBp0k9KmfRb0on/kgl5qTMdIb81vSCt7pGtWr5ZmCZX236Tx1WpdcBhzKIKYaJxk7GerQ07BUpVusL5shHzFOsJEGiEU/HSEL/WLB/yW8YOg76sQ+bn9FvVUe4KSamWdASf+/StdLD3YPlbQA5mzj+t+k1eZ4Sq2x4qcYpyDYzTW5osvqulammJDtaBUvjs3JTWgUxU4VRyW80Mp6z6SUrFAZk6CKc0bPpCU8r+tv2wkhhFU6N+vq9bOCXHT5nWFhdcc/raOm45Bf0D4VQxHcGBJtlSOkmSsginNCCcStZrXR/WJ5yaUtPBF05ZjygQTvWDvrYLxEiPorvDKaEsY0QX4VQ1pyUdctsQMpNVWHUEa2WsIVp7iwKpzDW5aiKnCwryVeVQETKb7HdUOo3GSbLtnHKcnuk3zmCyUtIqvakF4YyMTSUbK7SxXkppiVAFmc6JO4ZWvo4sJRSR69XYo0mPLczxjyAiOE3vzIqiPf/ItTvs3yrYcKriVwrS6ZR0oo+r2sg26QvDS8gvW0uSqSNn1o9FTaWmRin7S07nclpnmqb74nTNayGFLFJkkMQpynHu60H9PLWOHJ/fBEFZLcdUUrngOKz4uEpT3Ife/0oDis9HjULb88ixJgSXuGFssrPVfuEGnnWd6cCfWw4dTlnX5eRKlDLCE665Bd0zPHMYabYih1WlRMj0HDvdlpSa9qX0ZXz6Gh1lTuW4yo9drMu0gOwTq6lF2IhwSv/WbUDBhgRxRma9LYVTSvMcdvryCzX6wilTRQinciDCKUf3Z4Yd2xZOFQzLHMWTBUvZ6TZDXv7INZpLL6UvIBgTq5GJnI6yRnKl0+vr04Xlm2uv1X6fqUUQzAh2L98wK2iP5u0i0Tqki+gscubUW2odkOej0jyfnY78Qo3xgBTalXRFnE7aZvLnlkP87hSVCeGUR4fLX9A/Js9Y7XH7zYR+OHEGyIbl68u4h2t7w1Izix3ppfzmnu+tLtyyGXWvKt2baW3by6w7mymDe1THKe51QLDB0Uf5/eLuuOBFZoeS/tT0HeInjtzfnSITHfuEdalSqpEppWZ4chtTDtPiOsoNdePCqem8aaSLyPRS+hr7M/1J6nD9KMwXZe870t3tytxvkulFSE52eY2K88dXTfbrx5VQo5xBrtetkxzA+fWa1gFZR2mez05HfqHG4IV1PjoWHKs/t5wwnApoZiXmBpefExFNMejLIvJM0xtj0pHtF/TdOlVE/VKyXTnpRdA4WWhUpVgmYh3hLaejbIjGftmfZH4yW/KqJp2zx+o3rr1CK7j8sov0PWJC095p0+2Ck5WdqzeMVK6/5ZwmO1MwPlOnbrmmiKDP2RPkkdNJHXejOJ34rbVdcqVTyqucf0zppPLU6E8wDcKp1ZoCCtLL3uSmtzDti+ivG7Jh3NXNXQE313LQBm2vA+AA+NMKwqke0uOulD9d5e+4sU7FkFNLEQu5S92bBEDHtL0OgAPgTxPLcAoAAAAAADhAOAXAVrC5HzQ313IAwPaAcAqAraAHsUgPmgAA6CthOCV8EBQ+HXKZTR8oTfpJKZN+SzrCAzcm/5TSEfJb0wvS6h7ZquWbhWlyte0333hrw6RFXYv/Y5M4C+uZuYkZF0nmn3Yy70hK1bjCeYf5PsW6tyIa4ZSwjtTneZBHswAp7DDoyzpkfk6/VR0uj9U/LekIPvfpW+lgw8CysoAczJx/WvWbe7y1ZNIi6FFWKthPrpmCTnKNbWnS+a6WqqUlOlhPNgX4YSWowinrMldqm9crWAW70UE4pWHTp30p+9v2g3IUdcDGhVPK9W09w6nO3Lgm9Lt1YJ1BOFVMJ7nsKmVL6SRJyiKc0oBwKlmvPhyRDes+nBIS47dBZmVzuOKCtSY/IJwCoBukR9FzljmurFyRXt8hWM1pSYfcNoTMZBVWHcFaGWuI1t4iRSpzTa6ayOmCgnxVOVSEzCb7HZVOo3GSbDunHKdn+o0zmKxUaK9QqiyLdsVVcIlke4PMpJQgTtZFWqv0Q9JOeQhppOR6M3VkKaGIXK/GHk16bKHG2iDztNmhcqfEr5NFuHqVfpA9qfGP3p/JJih1BOPbhg2nAlu5S1zKNBUW1K9a9YXuFPLL1pJk6siZ9X2vqdTUKGV/yelcTuvI1nRfnK55LaSQRYoMkjhFOc59Paifp9aR4/ObICiraaxqaRxWqXBqyvhZzpx0C5lfPwyU6PsxaSeXQV+vSafL+ehYW4JL3KgQjBEGTFxXrO/oxyLrHmmJYEBOema/dAwdTlnX5eRKkTLCrJ8j6J6Zmd2mWZEdVpUSIdNz7HRbUmqaldKX8elrdJQ5leNK2eNCunVZFJB9YjU1k8U2E+w3ixTNPhSn65e1ev54k85stb4flflL1WuSans+Zm7bpqbJ42TKjENBR/NWyGBtSFxQHvDu6czNO9nm9raqJEQ4ZZ1+yQwar5n0k2TaU1wnyF9Kx1c8WbCUnW4z5GWLXFuFjaeIvoBgTKxGJnI6yhrJlUWvr08XlkuuvVb7BXvkS5nI+4H1dVJNyF980hVZrvWdW1ZnkTOnXsd8J9Plea00b1rr6LhpXHs5Z+rfyhmsnUK+kP2TdGmcTtps6peOIX53isqEcMqjw+Uv6B/HNNbb4/abCf1w4gyQDcvXl3EP1/aGpWYWO9JL+c09nttbKLm1m3zLGRzvH4KakN89wUnaXq7d2UwZ3LMjTnGvJ4INjnU4HnJCex37cgfzN3iROTBM80sj2D25vzuVLMgV4RRMO0FSjUwpNTOT25hvquTrKDfUjQunpvOmkS4i00vpa+zP9Cepw/WjMF+Uve9Id7fL2nClAQUh94Oc+ZJstZBfXqxMg5M0T9lMfQa5XrdOciLk12taT2QdpXlBflJEM3hke8gipdY9bkTlzBdONrNfOiYMpwKaWQlfc/lN3ePQl0UE+5X2OHRk+wV9t04VUb+UbFdOehE0ThYaVSmmZawjvOV0lA3R2C/7k8xPZkte1aRz9lj9xrVXaIWmXrIU2bR84gEgNFDjrqlxHMq1B6Za/aDpOLkhQqdw1eXr1C3XFBH0OXuCPHI6qeNolFxX0N6kM+O3ZBE5P9de0nLOSNI/mibErouVZTs5nY7B3+zrJ6sdVS3BTSfTcuDQXzeS6x2Xvg4rjoPNtRysM22vJ5vCprR3/e1EONVD1nCclUL+NJO/48Y6FUNOLUUs5C51bxIAG0rb68mmsCntXXM7EU4BAAAAAGSBcAqArWDNP9gJbK7lAIDtAeEUAFtBD2KRHjQBANBXiN+d4j4ICp8OucymD5Qm/aSUSb8lneh5G+c3EUrpCPmt6QVpdY9s1fLNwjS52vabb7y1YRI3uazpwdWkfjeUqnGF8wjzF2wKub87xa0pwlvGDoO+rEPm5/Rb1eHyWP3Tko7gc5++lQ42mBVuA+sGOZg5/7TqN/d4a8mkUvOCXDCF/EWQe2qjw6mVBKAAuFGFU9ZlrtQ2r1ewCnajg3BKw6Yvl6Xsb9sPylHUAWsbTinXMTJd/9ErsxWduWVN6HfrQJ9AOFVMJ/4g5QuDSukkScoinNKAcCpZr2992JJwynoAg3AKgPVEehQ951MjV1auSK/vEJyfHPtXLlmH3DaEzGQVVh3BWhlriNbeokYqc02umsjpgoJ8VTlUhMwm+x2VTqNxkmw7pxynZ/qNM5isVG+VkDkTU2dx6XIbrf5J2hn3rGCnXkquN1NHlhKKyPVq7NGkxxY62pXUkfXz7ako2vObXHuy3p7BhlNVNF25t2TKNBUWBCPGpC8MFyG/bC1Jpo6cWT+2NJWaGqXsLzmdy2mdOZrui9M1r4UUskiRQRKnKMe5rwf189Q6cnx+EwRltWS6VVk/DpMNsQ5ILpu+izXW1lP0w0CTQV+vSafL+eVYK4JL+l5z6JDpxe0JXuQMby490889gw6nrOuyZikRjfCEa25B90zOHBaarchhVSkRMr3sTqC0pNQ0LqUv49PX6ChzKseVsseFdOuyK5D0CZne0iDsQTilf+s2o5TONIr/MuttKZxSmufT0QzvfHt84ZS+0qAfEU4R4ZR1uiYzaHrFpJ9kzcOpgmGZo3iyYCk73WbIywq5FnPppfQFBGNiNTKR01HWSK5cen19urAcc+212m8yoBQaA5KvBWuFrcVBkeVX31lldRY5c+ottT7I81Rpnk+Hcyb31moP+UK2M+miOJ202eTnnkH87hSVCeGUR4fLX9A/vmmmtMftNxP64WRamwrqy7iHa3vDUjOLHeml/OYeb92MQNKe5GvBWveE1Vgbp2QuL+5spgzu0R6nuNcHwYacddVddfF1PniR2dGmeaER7B+5vzuVLMgV4RRMO0FSjUwpNZOT25hy2BXXUW6oGxdOTedNI11EppfS19if6U9Sh+tHYb4oe9+R7m6XteFKA0pRal6Umu9Ka63jSp9BrtetkxzY+fWa1gdZR2meT0czQ/PtCV4UH+f5fu4ZYTgV0MxKzAEuPycimmLQl0XkGaU3xqQj2y/ou3WqiPqlZLty0ougcbLQqEox7WMd4S2no2yIxn7Zn2R+Mlvyqiads8fqN669Qiu4/En/kE3LoYoI0rmcQXqyFJk/fqu3mdSvv5UNFvxMVpevU7dcU0TQ5+wJ8sjppI6jUSYdWT/fnnpO7oXSJKHqWHnqCnN7Bv5mXz/p5ajlpqswjYvorxuyYdzVzV3RNtdy0CVtrw9ABn5GONVDejyO5U9L+TturFMx5NRSxELuUvcmAbAmtL0+AJkt9zPCKQAAAACALBBOAbAVbO4Hx821HACwPSCcAmAr6EEs0oMmAAD6CvG7U9wHQeHTIZfZ9IHSpJ+UMum3pCM8cGPyTykdIb81vSCt7pGtWr5ZmCZX235LjivOqg7sqaivxXGTbpEe5+cuyfVyjW17GsqUqnq1TVhJva1i9WdB//fSn5nk/u6UciFQ2GHQl3XI/Jx+qzpcHqt/WtIRfO7Tt9LBDrHC5XvdIAcz559W/ZYcV4JVXdpjWtbiUppm6t+SKQWRe3yjw6kO1plVsZJwqsf+zEQVThVfF0zFNQpWwW50EE5p2PRpWcr+tv2gHEUd0MtwypGe1G91AnYcrq2cfrcuZlXryTaDcKqYjn75K7WMth3tIZzSgHAqWa9pfTh421k4JWi2Gk4lFxNHEetBRTKlT/S7dTEIp7pHehTdHU4JZeWK9PoOwWpOSzrktiFkJquw6gjWylgX/fYmD7dxkk2umsjpgoJ8VTlUhMwm+x2VTqNxkmw7pxynZ/qNM5isNNYRrE06x4GgKfeL3p9kutyWhatNRZT+4drF9a8wMh1DN19HlhKKyPVq7NGkxxaarNXrcLJJIzX1JotYm6P0m7IJyqZZ682EDaeqaJpxb8mUaSosqF+16gvdI+SXrSXJ1JEz6/tSU6mpUcr+ktO5nNaRqum+OF3zWkghixQZJHGKcpz7elA/T60jx+c3QVBWkzUdyspxKFz1GaNMV1rlG5Ma9P0r5Jcz6Os16XQ5Tx1rTnBJHkWCSUqd/HnN1WtdVzliwWoeHcrZHOmZ/ZUJHU5Z12XrsmiqTimiF3TPwMxu0GxFDqtKiZDpOXa6LSk1bUrpy/j0NTrKnMpxlb/sWpc5AVOfmpStrG04tUBZxIo1rCmy7BTUmUbxX2a9bWzPpqZphqL+kntek0VWGE657VyLcMo6zZIZNF4w6SdZ83CqYFjmKJ4sWMpOtxny8sTNbW5tLaIvIBhD7ohCE3w1kiuFXt+97Nbr4tprsj/W6WAECpqkY5MFlemOess23zQvuNr1nV5WZ5Ezp17HOsANS27QmrpMOSSUl9zzOrjE+dnh+eCF7LekqzV2WvsrE+J3p6hMCKc8Olz+gv7Jma5Je9x+M6EfTtaFo5S+jHu4tjcsNbPYkV7Kb5qGm5qQiaZd+l4u7s/M8cnR9jLuzmbK4J41cYp7nRFsyFmfMy+5xyGZnrMpx44lQ59k8aSs8FojmE/u704lC3JFOIUiy6jc96VmYHIbU3ZzcR3lhrpx4dR03jTSRWR6KX2N/Zn+JHW4fhTmi7L3HenudjnWhyLrgBL3PE2qyemOeS3bY/KPftySbzUZ5HrdOskJkl+vaZ2RdZTmyWUFneR4s0435UKUv0Jax7ljwbT2VyZhOBUQWxaVp/NzIqIpBn1ZRJ4JemNMOrL9gr5bp4qoX0q2Kye9CBonC42qFNMs1hHecjrKhmjsl/1J5iezJa9q0jl7rH7j2iu0IpmfvKrvESuCE4KUpIVCoia/4NiYWMrRarlewX7BGKG6fJ1p1Be+eqfMOIzzyOmkjqNRQUGT8WQVJj8LVUyZoWJyPqlG6nD6SVfEdgZ5SCnZfhP4m339pOwoWRO46SFMmyL664ZsGHe1pRWkAzbXcrCJtL3OgG7ovr8QTvWQHs9z+dNJ/o4b61QMObUUsZC71L1JAPSMttcZ0A0d9xfCKQAAAACALBBOAQAAAABkgXAKAAAAACALhFMAAAAAAFkgnAIAAAAAyALhFAAAAABAFginAAAAAACyQDgFAAAAAJAFwikAAAAAgCwQTgEAAAAAZPH/SpRG3JQINLkAAAAASUVORK5CYII=" alt="" />
5、日志输出-控制台和文件
只要在输入到日志中的第二步和第三步插入一个handler输出到控制台:
创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING) # 输出到console的log等级的开关
第四步和第五步分别加入以下代码即可
ch.setFormatter(formatter)
logger.addHandler(ch)
6、format常用格式说明
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
7、捕捉异常,用traceback记录
import os.path
import time
import logging
# 创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等级总开关 # 创建一个handler,用于写入日志文件
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
log_path = os.path.dirname(os.getcwd()) + '/Logs/'
log_name = log_path + rq + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关 # 定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
logger.addHandler(fh)
# 使用logger.XX来记录错误,这里的"error"可以根据所需要的级别进行修改
try:
open('/path/to/does/not/exist', 'rb')
except (SystemExit, KeyboardInterrupt):
raise
except Exception, e:
logger.error('Failed to open file', exc_info=True)
回显(存储在文件中):
aaarticlea/png;base64,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" alt="" />
如果需要将日志不上报错误,仅记录,可以将exc_info=False,回显如下:
aaarticlea/png;base64,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" alt="" />
8、多模块调用logging,日志输出顺序
warning_output.py
import logging def write_warning():
logging.warning(u"记录文件warning_output.py的日志")
error_output.py
import logging def write_error():
logging.error(u"记录文件error_output.py的日志")
main.py
import logging
import warning_output
import error_output def write_critical():
logging.critical(u"记录文件main.py的日志") warning_output.write_warning() # 调用warning_output文件中write_warning方法
write_critical()
error_output.write_error() # 调用error_output文件中write_error方法
回显:
aaarticlea/png;base64,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" alt="" />
从上面来看,日志的输出顺序和模块执行顺序是一致的。
9、日志滚动和过期删除(按时间)
# coding:utf-8
import logging
import time
import re
from logging.handlers import TimedRotatingFileHandler
from logging.handlers import RotatingFileHandler def backroll():
#日志打印格式
log_fmt = '%(asctime)s\tFile \"%(filename)s\",line %(lineno)s\t%(levelname)s: %(message)s'
formatter = logging.Formatter(log_fmt)
#创建TimedRotatingFileHandler对象
log_file_handler = TimedRotatingFileHandler(filename="ds_update", when="M", interval=2, backupCount=2)
#log_file_handler.suffix = "%Y-%m-%d_%H-%M.log"
#log_file_handler.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}.log$")
log_file_handler.setFormatter(formatter)
logging.basicConfig(level=logging.INFO)
log = logging.getLogger()
log.addHandler(log_file_handler)
#循环打印日志
log_content = "test log"
count = 0
while count < 30:
log.error(log_content)
time.sleep(20)
count = count + 1
log.removeHandler(log_file_handler) if __name__ == "__main__":
backroll()
filename:日志文件名的prefix;
when:是一个字符串,用于描述滚动周期的基本单位,字符串的值及意义如下:
“S”: Seconds
“M”: Minutes
“H”: Hours
“D”: Days
“W”: Week day (0=Monday)
“midnight”: Roll over at midnight
interval: 滚动周期,单位有when指定,比如:when=’D’,interval=1,表示每天产生一个日志文件
backupCount: 表示日志文件的保留个数
python的logging的简单使用的更多相关文章
- python之logging模块简单用法
前言: python引入logging模块,用来记录自己想要的信息.print也可以输入日志,但是logging相对print来说更好控制输出在哪个地方.怎么输出以及控制消息级别来过滤掉那些不需要的信 ...
- python模块 ---logging模块
摘要by crazyhacking: 与log4cxx一样,分为三个部分,logger, handler,formatter. 详细内容参考:1官网http://docs.python.org/2/h ...
- python的logging模块
python提供了一个日志处理的模块,那就是logging 导入logging模块使用以下命令: import logging logging模块的用法: 1.简单的将日志打印到屏幕上 import ...
- python的logging模块之读取yaml配置文件。
python的logging模块是用来记录应用程序的日志的.关于logging模块的介绍,我这里不赘述,请参见其他资料.这里主要讲讲如何来读取yaml配置文件进行定制化的日志输出. python要读取 ...
- Python:logging 的巧妙设计
引言 logging 的基本用法网上很多,这里就不介绍了.在引入正文之前,先来看一个需求: 假设需要将某功能封装成类库供他人使用,如何处理类库中的日志? 数年前在一个 C# 开发的项目中,我用了这样的 ...
- python中logging模块的用法
很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...
- Python模块——logging模块
logging模块简介 logging模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统.logging模块是Python的一个标准库模块, 由标准库模块提供日志记录API的关键好处是 ...
- python 运行日志logging代替方案
以下是自己写的 记录日志的代码.(和logging不搭嘎,如果如要学loggging模块,本文末尾有他人的链接.) # prtlog.py ############################## ...
- day27 python学习 logging
logging模块 函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging ...
随机推荐
- uboot中关于LCD的代码分析【转】
本文转载自:http://blog.csdn.net/oqqHuTu12345678/article/details/72236117 以下内容源于朱有鹏<物联网大讲坛>课程的学习,如有侵 ...
- Javascript 解析字符串生成 XML DOM 对象。
Javascript 接收字符串生成 XML DOM 对象.实测对 Firefox .IE6 有效.可用于解析 ajax 的服务器响应结果,也可用于解析自定义字符串.1. [代码]函数 ppt模 ...
- BZOJ_1415_[Noi2005]聪聪和可可_概率DP+bfs
BZOJ_1415_[Noi2005]聪聪和可可_概率DP+bfs Description Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2 ...
- codeforces 125 A-E 补题
A Measuring Lengths in Baden 进制转换 水题 #include<bits/stdc++.h> using namespace std; int main() { ...
- 使用x-template 定义模板
demo <script type="text/x-template" id="myFirstScriptComponent"> <p> ...
- 警告框在asp.net mvc中应用
Bootstrap与asp.net MVC框架结合,产生警告框.主要是利用控制器的TempData 字典对象 生成临时数据. ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个 ...
- vs2010 每行代码显示虚线
快捷键:Ctrl+R,W或Ctrl+E,S,即可去除 或者是编辑菜单——高级——查看空白 VS12010代码编辑器横向滚动条 工具----选项-----文本编辑器---所有语言---右侧 自动换行去掉
- bzoj 1180: [CROATIAN2009]OTOCI【LCT】
一道几乎是板子的LCT,但是沉迷数学很久时候突然1A了这道题还是挺开心的 #include<iostream> #include<cstdio> using namespace ...
- XML 基础学习
在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下. XML 简介 XM ...
- [洛谷2839/国家集训队]middle
Description 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你一个长度为n的序列s.回答Q个这样的询问:s的左端点在[a,b]之 ...