python日志配置文件_python 之 logger日志 字典配置文件

importosimport logging.config #不能只导入logging

BASE_DIR=os.path.dirname(os.path.dirname(__file__))#DB_PATH=os.path.join(BASE_DIR,'db')#DB_PATH=r'%s\db' %BASE_DIR

#定义日志文件的路径

LOG_PATH=os.path.join(BASE_DIR,'log','access.log')#LOG_PATH=r'%s\log\access.log' %BASE_DIR#BOSS_LOG_PATH=r'%s\log\boss.log' %BASE_DIR

#定义三种日志输出格式 开始

standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]'\'[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字

simple_format= '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'id_simple_format= '[%(levelname)s][%(asctime)s] %(message)s'

#定义日志输出格式 结束

logfile_dir= os.path.dirname(os.path.abspath(__file__)) #log文件的目录

logfile_name = 'all2.log' #log文件名

#如果不存在定义的日志目录就创建一个

if notos.path.isdir(logfile_dir):

os.mkdir(logfile_dir)#log文件的全路径

logfile_path =os.path.join(logfile_dir, logfile_name)#log配置字典

LOGGING_DIC ={'version': 1,#禁用已经存在的logger实例

'disable_existing_loggers': False,#定义日志 格式化的 工具

'formatters': {'standard': {'format': standard_format

},'simple': {'format': simple_format

},'id_simple': {'format': id_simple_format

},

},#过滤

'filters': {}, #jango此处不同

'handlers': {#打印到终端的日志

'stream': {'level': 'DEBUG','class': 'logging.StreamHandler', #打印到屏幕

'formatter': 'simple'},#打印到文件的日志,收集info及以上的日志

'access': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler', #保存到文件

'formatter': 'standard','filename': logfile_path, #日志文件路径

'maxBytes': 1024*1024*5, #日志大小 5M

'backupCount': 5,'encoding': 'utf-8', #日志文件的编码,再也不用担心中文log乱码了

},#打印到文件的日志,收集error及以上的日志

'boss': {'level': 'ERROR','class': 'logging.handlers.RotatingFileHandler', #保存到文件

'formatter': 'id_simple','filename': BOSS_LOG_PATH, #日志文件

#'maxBytes': 1024*1024*5, # 日志大小 5M

'maxBytes': 300, #日志大小 5M

'backupCount': 5,'encoding': 'utf-8', #日志文件的编码,再也不用担心中文log乱码了

},

},#logger实例

'loggers': {#默认的logger应用如下配置

'': {'handlers': ['stream', 'access','boss'], #这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕

'level': 'DEBUG','propagate': True, #向上(更高level的logger)传递

},#logging.getLogger(__name__)拿到的logger配置

#这样我们再取logger对象时logging.getLogger(__name__),不同的文件__name__不同,这保证了打印日志时标识信息不同,

#但是拿着该名字去loggers里找key名时却发现找不到,于是默认使用key=''的配置

},

}defload_my_logging_cfg():

logging.config.dictConfig(LOGGING_DIC)#导入上面定义的logging配置

logger = logging.getLogger(__name__) #生成一个log实例

logger.info('It works!') #记录该文件的运行状态

if __name__ == '__main__':

load_my_logging_cfg()#从common.py引用,要传入name,且有返回log实例#import logging.config#import logging#from conf import setting

#def get_logger(name):

#logging.config.dictConfig(setting.LOGGING_DIC) # 导入上面定义的logging配置

#l1=logging.getLogger(name)

#return l1

#src.py#logger1 = common.get_logger('查看余额')#logger1.debug( dic_user_check['money'] )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值