首页 > 编程语言 >python-日记模块模板

python-日记模块模板

时间:2023-06-06 21:44:52浏览次数:40  
标签:log format python 模块 path 日志 logfile logger 模板

 1 """
 2 logging配置
 3 """
 4 
 5 # 定义三种日志输出格式 开始
 6 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
 7                   '[%(levelname)s][%(message)s]'  # 其中name为getlogger指定的名字
 8 simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
 9 id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
10 
11 # 定义日志输出格式 结束
12 # ****************注意1: log文件的目录
13 BASE_PATH = os.path.dirname(os.path.dirname(__file__))
14 logfile_dir = os.path.join(BASE_PATH, 'log')
15 # print(logfile_dir)
16 
17 # ****************注意2: log文件名
18 logfile_name = 'atm.log'
19 
20 # 如果不存在定义的日志目录就创建一个
21 if not os.path.isdir(logfile_dir):
22     os.mkdir(logfile_dir)
23 
24 # log文件的全路径
25 logfile_path = os.path.join(logfile_dir, logfile_name)
26 
27 LOGGING_DIC = {
28     'version': 1,
29     'disable_existing_loggers': False,
30     'formatters': {
31         'standard': {
32             'format': standard_format
33         },
34         'simple': {
35             'format': simple_format
36         },
37     },
38     'filters': {},
39     'handlers': {
40         # 打印到终端的日志
41         'console': {
42             'level': 'DEBUG',
43             'class': 'logging.StreamHandler',  # 打印到屏幕
44             'formatter': 'simple'
45         },
46         # 打印到文件的日志,收集info及以上的日志
47         'default': {
48             'level': 'DEBUG',
49             'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
50             'formatter': 'standard',
51             'filename': logfile_path,  # 日志文件
52             'maxBytes': 1024 * 1024 * 5,  # 日志大小 5M
53             'backupCount': 5,
54             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
55         },
56     },
57     'loggers': {
58         # logging.getLogger(__name__)拿到的logger配置
59         '': {
60             'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
61             'level': 'DEBUG',
62             'propagate': True,  # 向上(更高level的logger)传递
63         },
64     },
65 }
 1 # 添加日志功能: (日志功能在接口层 使用)
 2 def get_logger(log_type):  # log_type ---> user
 3     '''
 4     :param log_type: 比如是 user日志,bank日志,购物商城日志
 5     :return:
 6     '''
 7     # 1、加载日志配置信息
 8     logging.config.dictConfig(
 9         settings.LOGGING_DIC
10     )
11 
12     # 2、获取日志对象
13     logger = logging.getLogger(log_type)
14 
15     return logger

 

1 # 根据不同的接口类型传入不同的日志对象
2 user_logger = common.get_logger(log_type='user')
3 
4     msg = f'{username} 注册成功!'、
5     # 记录日志
6     user_logger.info(msg)

 

标签:log,format,python,模块,path,日志,logfile,logger,模板
From: https://www.cnblogs.com/ccsway/p/17461785.html

相关文章

  • 实验6 turtle绘图与python库应用编程体验
    实验任务1task1_1fromturtleimport*defmoveto(x,y):'''画笔移动到坐标(x,y)处'''penup()goto(x,y)pendown()defdraw(n,size=100):'''绘制边长为size的正n边形'''for......
  • python笔记
    python官方文档6.6的代码:frommaiximportcamera,mjpg,displayimportsocket#host_name='192.168.4.1'shuzu=bytearray(57600)#bytes是不能被修改的#s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#地址簇:AF_INET(IPv4)类型:SOCK_STREAM(使用TCP传输控......
  • 模块
    简介模块就是一系列的整合,使用时直接调用即可,模块可以提高效率 1.来源1.内置的(python解释器自带的,可以直接使用)2.第三方的(别人写好直接放网上,想要下载才可以使用)3.自定义的(自己写的) 2.存在模式一共有四种模式,目前只用2种1.我们自己写的单个py文件(一个py文件就是一个模......
  • python opencv GaussianBlur
    pythonopencvGaussianBlur importcv2#Loadtheimageimg=cv2.imread('20230222100736979.jpg')#ApplyaGaussianblurwithakernelsizeof5x5blur=cv2.GaussianBlur(img,(5,5),0)#Displaytheoriginalandblurredimagessidebysi......
  • Python正则表达式学习(5)——re.findall()
    re.findall(pattern,string,flags=0)返回字符串中模式的所有非重叠匹配,作为字符串列表。字符串从左到右扫描,并按照找到的顺序返回匹配项。如果模式中存在一个或多个组,则返回组的列表;如果模式有多个组,这将是一个元组的列表。结果中包含空匹配,除非他们触及另一个匹配的开始。In[1......
  • Python正则表达式学习(4)——re.match() 和 re.search()
    Python提供了基于正则表达式的两种不同的原始操作:re.match()仅在字符串的开头检查匹配,只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。re.search()检查字符串中任何位置的匹配例如:In[2]:re.match("c","absdbdfskdvc")In[3]:re.search("c","a......
  • 基于《PythonCookbook》的学习(3)——利用 Shell 通配符做字符串匹配
    fnmatch模块提供了fnmatch()和fnmatchcase()两个函数可以使用通配符模式对文本进行匹配fnmatch所完成的匹配操作有点介乎于加单的字符串方法和全功能的正则表达式之间。感觉蛮鸡肋的…:(......
  • Python正则表达式学习(3)——re.compile()
    re.compile(pattern,flags=0)将正则表达式pattern编译为正则表达式对象,可用于使用其match()和search()方法进行匹配。顺序:prog=re.compile(pattern)result=prog.match(string)等价于:result=re.match(pattern,string)但是当单个程序中的表达式被多次使用时,使用re.comp......
  • 基于《PythonCookbook》的学习(1)——针对任意多的分隔符拆分字符串
    问题:需要将字符串拆分为不同的字段,但是分隔符(以及分隔符之间的空格)在整个字符串中并不一致re.split()方法比str.split()方法更为灵活,可以为分隔符指定多个模式re.split()方法返回一个list目标字符串:In[15]:lineOut[15]:'asdasdsadas,,,,sdfdsfi///ds...ds/essd//s......
  • HttpURLConnection调用webservice,c#、java、python等HTTP调用webservice,简单的webserv
    以前调用webservice一般使用axis、axis2先生成java类后,直接引用,多方便。但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法。axis2有不生成类直接调用的方法,但是QName不容易找,每次查N久不到。有的反馈,使用CXF调用一样方便,但CXF还要使用maven下载jar,而......