共计 2100 个字符,预计需要花费 6 分钟才能阅读完成。
// # coding=utf-8
import sys
import logbook
import os
from logbook import *
from logbook.more import ColorizedStderrHandler
sys.path.append(‘../’)
sys.path.append(‘/Users/dasouche/’)
以后文件的上一层
curPath = os.path.abspath(os.path.dirname(__file__))
获取 myProject,也就是我的项目的根门路
rootPath = curPath[:curPath.find(“xiaobang-api-auto/”)+len(“xiaobang-api-auto/”)] # 获取 myProject,也就是我的项目的根门路
def log_type(record, handler):
log = "[{date}] [{level}] [{filename}] [{func_name}] [{lineno}] {msg}".format(
date=record.time, # 日志工夫
level=record.level_name, # 日志等级
filename=os.path.split(record.filename)[-1], # 文件名
func_name=record.func_name, # 函数名
lineno=record.lineno, # 行号
msg=record.message # 日志内容
)
return log
日志寄存门路
LOG_DIR = rootPath + ‘log’
print(LOG_DIR)
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
日志打印到屏幕
log_std = ColorizedStderrHandler(bubble=True)
log_std.formatter = log_type
日志打印到文件
log_file = Skrill 下载 TimedRotatingFileHandler(
os.path.join(LOG_DIR, '%s.log' % 'log'), date_format='%Y-%m-%d', bubble=True, encoding='utf-8')
log_file.formatter = log_type
脚本日志
run_logger = Logger(“global_log”)
def init_logger():
logbook.set_datetime_format("local")
run_logger.handlers = []
run_logger.handlers.append(log_file)
run_logger.handlers.append(log_std)
”’
日志等级:
critical 严重错误,会导致程序退出
error 可控范畴内的谬误
warning 正告信息
notice 大多状况下心愿看到的记录
info 大多状况不心愿看到的记录
debug 调试程序时具体输入的记录
”’
实例化,默认调用
初始化日志零碎(被默认调用)
init_logger()
if name == “__main__”:
run_logger.info(“ 测试日志模块 ”)
run_logger.info(“ 测试 ”)
run_logger.debug(‘sss’)
也能够以。ini 文件配置代码片段如下
[loggers]
keys = root
[handlers]
keys = consoleHandler,fileHandler
[formatters]
keys = fmt
[logger_root]
level = DEBUG
handlers = consoleHandler,fileHandler
[handler_consoleHandler]
class = StreamHandler
level = DEBUG
formatter = fmt
args = (sys.stdout,)
[handler_fileHandler]
class = logging.handlers.RotatingFileHandler
level = DEBUG
formatter = fmt
args = (‘%(logfilename)s’, ‘a’, 10485760, 20)
[formatter_fmt]
format = %(asctime)s — %(levelname)s — %(name)s — %(funcName)s — %(lineno)d — %(message)s
日志加载代码
config_log_file = os.path.join(config_dir, ‘logging.ini’)
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logpath = os.path.join(log_dir, ‘%s%s.log’ % (‘log-‘,time.strftime(‘%Y-%m-%d’)))
logging.config.fileConfig(config_log_file,defaults={‘logfilename’:logpath})