码迷,mamicode.com
首页 > 其他好文 > 详细

软件开发规范及日志模块

时间:2019-04-04 18:51:41      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:path   语句   屏幕   form   imp   nbsp   critical   消息   打开   

项目名称
  1.bin 项目的启动文件目录
    1.1 stat.py
  2.conf   config配置文件
    2.1 settings.py 可能会发生改变的配置信息
  3.core  核心代码
    3.1  相关文件,实际的python代码所在的文件
      user.py
      auth.py
      main.py
  4. lib库
  5. db database 数据库 可以引用的所有数据 不一定时py
  6. log 日志

=============================================================================
日志模块

 1 import logging
 2 logging.basicConfig(level=logging.DEBUG,     #把记录级别从warning减低到debug
 3                     format=%(asctime)s %(filename)s[line:%(lineno)d] 
%(lecelname)s %(message)s
#记录内容格式化 4 detefmt=%a,%d %b %Y %H:%M:%S, #指定的日期时间格式 5 filename=/tmp/test.log, #指定文件名 6 filemode=w) #指定读写方式 7 logging.debug(调试信息) 8 logging.ingo(普通信息) 9 logging.warning(警告信息) 10 logging.error(错误信息) 11 logging.critical(严重信息)

配置参数

logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

format参数中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息

但是logging模块不能同时输出文件和属性,同时日志中不支持中文
第二种日志方式

用logger对象的方式来写日志

import logging            
logger=logging.getlogger                         #先创建logger对象
logger.setLevel(logging.DEBUG)                #升级记录模式
fh=logging.FileHandler(log,enconding=utf-8)      #创建文件操作符
sh=logging.Formatter(%(asctime)s-%(name)s -%(levelname)s-%(message)s)
                    #创建一个记录格式
logger.addHandler(fh)                            #logger绑定文件操作符
logger.addHandler(sh)                            #绑定屏幕操作符
fh.setFermatter(fmt)                               #文件操作符绑定格式
sh.setFormatter(fmt)                               #屏幕操作符绑定格式
                       #logger对象可以添加多个fh和ch对象
logger.debug(调试信息)
logger.info(普通信息)
logger.warning(警告信息)
logger.error(错误信息)
logger.critical(严重信息)

logging库提供了多个组件:Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。另外,可以通过:logger.setLevel(logging.Debug)设置级别,当然,也可以通过

fh.setLevel(logging.Debug)单对文件流设置某个级别。

 

软件开发规范及日志模块

标签:path   语句   屏幕   form   imp   nbsp   critical   消息   打开   

原文地址:https://www.cnblogs.com/OB19227/p/10656451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!