5月23号(python)

1.python:日志

logging模块提供了完整和灵活的日志系统。它最简单的用法是记录信息并发送到一个文件或sys.stderr

作用:

            用于记录系统在运行过程中的一些关键信息,以便对于系统的运行状况进行跟踪。在python中我们不需要第三方的日志组件,因为它为我们提供了简单易用,功能强大的日志模块:logging。logging支持将日志保存信息保存在不同的目标域中。 

例:

import logging

logging.basicConfig(filename='os.py',level=logging.DEBUG)

logging.debug('this is a bug')

将会在程序的根目录下创建一个os.py的文件,里面有一条记录为:DEBUG:root:this is bug

2.日志的4个主要的组件

loggers------提供应用程序代码直接使用的接口.

handlers-------对日志信息进行处理,用于将日志发送到指定位置.

filters------对日志信息进行过滤,用于决定哪些日志会被输出(剩下的将被省略)

formatters------日志的格式化,用于控制日志输出的最终形式


3.日志级别(levle)

级别

对应值

描述

DEBUG

10

最详细的日志信息,典型应用场景是 问题诊断

INFO

20

信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作

WARNING

30

当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的

ERROR

40

由于一个更严重的问题导致某些功能不能正常运行时记录的信息

CRITICAL

50

当发生严重错误,导致应用程序不能继续运行时记录的信息

 

 

 

注: 上面列表中的日志等级是从上到下依次升高的,即:DEBUG < INFO < WARNING < ERROR < CRITICAL,而日        志的信息量是依次减少的;

4.logging模块的使用方式

第一种使用方式:使用logging提供的模块级别的函数

第二种使用方式:使用logging系统的四大组件

函数

说明

logging.debug(msg, *args, **kwargs)

创建一条严重级别为DEBUG的日志记录

logging.info(msg, *args, **kwargs)

创建一条严重级别为INFO的日志记录

logging.warning(msg, *args, **kwargs)

创建一条严重级别为WARNING的日志记录

logging.error(msg, *args, **kwargs)

创建一条严重级别为ERROR的日志记录

logging.critical(msg,*args,**kwargs)

创建一条严重级别为CRITICAL的日志记录

logging.log(level, *args, **kwargs)

创建一条严重级别为level的日志记录

logging.basicConfig(**kwargs)

对root logger进行一次性配置

其中logging.basicConfig( **kwargs)函数用于指定“要记录的日志级别”、“日志格式”、“日志输出位置”、“日志文件的打开模式”等信息,其他几个都是用于记录各个级别日志的函数。

5.格式

import logging

log_format='%(asctime)s %(levelname)s %(message)s'

logging.basciConfig(level='指定日志器的等级(如DEBUG)级别低的日志信息将被忽略',

                                     formatter='指定日志的输出文件名,不在控制台输出',

                                     format='指定日志的输出格式(log_format)',

                                                              datefmt='指定日期/时间格式。需要注意的是,该选项要在format中包含时间字段%(asctime)s时才有效                                             ')

logging.debug('this is bug')

6.打印出来各字段的意思

WARNING:root:This is a warning log.

日志级别:日志器名称:日志内容

这样输出的原因是logging模块提供的日志记录函数所使用的日志器设置的日志格式默认是BASIC_FORMAT,其值"%(levelname)s:%(name)s:%(message)s"

7.如果将日志输出在文件中,而不是在控制台,python默认指定日志输出的的文件名是sys.stderr

filename=要输出日志的文件名

8.logging.basicConfig()使用说明

定义方法:logging.basicConfig(**kwargs)

该函数可接收的关键字参数如下:

参数名称描述
filename                             指定日志输出目标文件的文件名,指定该设置项后日志信心就不会被输出到控制台了
filemode指定日志文件的打开模式,默认为'a'。需要注意的是,该选项要在filename指定时才有效
format指定日志格式字符串,即指定日志输出时所包含的字段信息以及它们的顺序。logging模块定义的格式字段下面会列出。
datefmt指定日期/时间格式。需要注意的是,该选项要在format中包含时间字段%(asctime)s时才有效
level指定日志器的日志级别
stream指定日志输出目标stream,如sys.stdout、sys.stderr以及网络stream。需要说明的是,stream和filename不能同时提供,否则会引发 ValueError异常
stylePython 3.2中新添加的配置项。指定format格式字符串的风格,可取值为'%'、'{'和'$',默认为'%'
handlersPython 3.3中新添加的配置项。该选项如果被指定,它应该是一个创建了多个Handler的可迭代对象,这些handler将会被添加到root logger。需要说明的是:filename、stream和handlers这三个配置项只能有一个存在,不能同时出现2个或3个,否则会引发ValueError异常。

9.logging模块定义格式字符串字段用于format格式符字段有一下:

字段/属性名称使用格式描述
asctime%(asctime)s日志事件发生的时间--人类可读时间,如:2003-07-08 16:49:45,896
created%(created)f日志事件发生的时间--时间戳,就是当时调用time.time()函数返回的值
relativeCreated      %(relativeCreated)d       日志事件发生的时间相对于logging模块加载时间的相对毫秒数(目前还不知道干嘛用的)
msecs%(msecs)d日志事件发生事件的毫秒部分
levelname%(levelname)s该日志记录的文字形式的日志级别('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL')
levelno%(levelno)s该日志记录的数字形式的日志级别(10, 20, 30, 40, 50)
name%(name)s所使用的日志器名称,默认是'root',因为默认使用的是 rootLogger
message%(message)s日志记录的文本内容,通过 msg % args计算得到的
pathname%(pathname)s调用日志记录函数的源码文件的全路径
filename%(filename)spathname的文件名部分,包含文件后缀
module%(module)sfilename的名称部分,不包含后缀
lineno%(lineno)d调用日志记录函数的源代码所在的行号
funcName%(funcName)s调用日志记录函数的函数名
process%(process)d进程ID
processName%(processName)s进程名称,Python 3.1新增
thread%(thread)d线程ID
threadName%(thread)s线程名称

10.练习日志的输出 

1.先简单配置一下日志器输出的级别



2.在配置日志器日志级别的基础上,在配置下日志输出目标文件和日志格式


此时发现在控制台上没有内容输出,这就说明已经常见了一个文件为you.log,内容显示在you.log文件中


在此基础上再设置一下日期格式


此时会在you.log日志文件中看到如下输出内容:






























































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值