python - logging模块应用

logging日志模块应用:

import logging


# logging.basicConfig(
# #定义日志级别,共5个级别,默认级别为warning级别,所以debug和info级别不添加日志
# level=logging.INFO,
# #不屏幕显示,将以路径,文件名保存制定目录.
# # filename="D:/xxx.log",
# filename="xxx.log",
# #模式默认为追加模式,这里设置为w,为覆盖写入模式.
# filemode='w',
# #标准化输出
# # %(name)s Logging的名字
# # %(levelno)s 数字形式的日志级别
# # %(levelname)s 文本形式的日志级别
# # %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
# # %(filename)s 调用日志输出函数的模块的文件名
# # %(module)s调用日志输出函数的模块名
# # %(funcName)s调用日志输出函数的函数名
# # %(lineno)d 调用日志输出函数的语句所在的代码行
# # %(created)f当前时间,用UNIX标准的表示时间的浮点数表示
# # %(asctime)s字符串形式的当前时间.
# # %(thread)d 线程ID
# # %(threadName)s 线程名
# #%(process)d 进程ID
# # %(message)s 用户输出的消息
# format="%(asctime)s  %(module)s %(message)s"
# )
#
# #级别日志:
# logging.debug("debug msg")
# logging.info("info msg")
# logging.warning("warning msg")
# logging.error("error msg")
# logging.critical("critical msg")

#-----------------------------------------------------

# 方式二
# 以类定义的方式,这种方式需要注意
# logger = logging.getLogger(),是所有类的父类
# logger = logging.getLogger("子类")定义一个子类,在输出日志的情况下
# 若定义了父类,子类的在输出日志时也会打印父类日志,
# 还有就时定义子类时,子类名不能设置同一个子类名.

#实例化一个logger类
logger = logging.getLogger()
# logger = logging.getLogger("子对象必须唯一")

#定义写入文件日志
fh = logging.FileHandler('xxx2.log')
#定义显示日志
ch = logging.StreamHandler()
#定义格式
fm = logging.Formatter("%(asctime)s  %(module)s %(message)s")

#显示或写入文件 加载格式
fh.setFormatter(fm)
ch.setFormatter(fm)

#实例化的类加载两种显示方式
logger.addHandler(fh)
logger.addHandler(ch)

#设置日志级别为DEBUG
logger.setLevel("DEBUG")

#用实例写日志
logger.debug("hello1")
logger.info("hello2")
logger.warning("hello3")
logger.error("hello4")
logger.critical("hello5")

 

posted @ 2018-10-04 16:00  Anec  阅读(115)  评论(0编辑  收藏  举报