log文件路径在初始化时更换为绝对路径,可避免在win32services中使用时为pythonservices所在路径而非.py文件所在路径导致错误而无法写日志。
使用: import myloger.py
#logger = logging.getLogger()
#logger.info('aaaaaaq')
#或import logging后直接使用
logging.info('5555555555')
1、log.yaml配置文件:
version: 1
disable_existing_loggers: False
formatters:
simple:
format: "%(asctime)s - %(filename)s - %(levelname)s - %(message)s"
datefmt: '%F %T'
simple1:
format: '%(asctime)s %(levelname)s %(message)s'
upgrade:
format: "%(asctime)s -Loc %(filename)s -Pid %(process)d -%(name)s -%(levelname)s - %(message)s"
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: simple
stream: ext://sys.stdout
info_file_handler:
class: logging.handlers.TimedRotatingFileHandler
level: DEBUG
formatter: simple
filename: ./mylog/log.log #这个路径根据自己的日志存放路径填写
interval: 1
backupCount: 2 #most 2 extensions
encoding: utf8
when: D #这里是D,H则按小时生成
root:
level: INFO
handlers: [console, info_file_handler]
2、myloger.py
import yaml
import logging.config
import os
def setup_logging(yamlcfg_path='./config/log.yaml', default_level=logging.INFO):
"""
Setup logging configuration
"""
#更换为绝对路径,可避免在win32services中使用时为pythonservices所在路径而非.py文件所在路径导致错误而无法写日志。
cur_path=os.path.abspath(os.curdir)
logf_file=os.path.join(cur_path,'mylog','info.log')
log_path=os.path.split(logf_file)[0]
if os.path.exists(log_path):
pass
else:
os.makedirs(log_path)
path = yamlcfg_path
if os.path.exists(path):
with open(path, 'rt',encoding='utf-8') as f:
config = yaml.safe_load(f.read())
#print(config['handlers']['info_file_handler']['filename'])
config['handlers']['info_file_handler']['filename']=logf_file
#print(config['handlers']['info_file_handler']['filename'])
logging.config.dictConfig(config)
else:
logging.basicConfig(level=default_level)
print('the input yaml path doesn\'t exist')
setup_logging(yamlcfg_path='./config/log.yaml')
#使用:
#logger = logging.getLogger()
#logger.info('aaaaaaq')
#或import logging后直接使用
logging.info('5555555555')
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!