logging日志:用来记录程序在运行时所产生的日志信息
记录程序日志信息目的
logging日志等级,从低到高依次为
默认为WARNING等级,等级大于等于WARNING才记录日志信息,以下将logging日志信息输出到控制台
- import logging
-
- logging.debug("这是一个debug级别日志信息")
- logging.info("这是一个info级别日志信息")
- logging.warning("这是一个wanrning级别日志信息") # 默认级别,即默认只显示该级别以上的日志信息
- logging.error("这是一个error级别日志信息")
- logging.critical("这是一个critical级别日志信息")
-
- 输出:
- WARNING:root:这是一个wanrning级别日志信息
- ERROR:root:这是一个error级别日志信息
- CRITICAL:root:这是一个critical级别日志信息
logging日志输出格式设置
- import logging
-
- logging.basicConfig(level=logging.DEBUG, format='当前时间:%(asctime)s - 所在文件:%(filename)s - 行号:[%(lineno)d] - 级别:%(levelname)s - 日志信息:%(message)s')
- logging.debug("这是一个debug级别日志信息")
- logging.info("这是一个info级别日志信息")
- logging.warning("这是一个wanrning级别日志信息") # 默认级别,即默认只显示该级别以上的日志信息
- logging.error("这是一个error级别日志信息")
- logging.critical("这是一个critical级别日志信息")
-
- 输出:
- 当前时间:2022-11-13 11:01:30,492 - 所在文件:logging日志.py - 行号:[4] - 级别:DEBUG - 日志信息:这是一个debug级别日志信息
- 当前时间:2022-11-13 11:01:30,492 - 所在文件:logging日志.py - 行号:[5] - 级别:INFO - 日志信息:这是一个info级别日志信息
- 当前时间:2022-11-13 11:01:30,492 - 所在文件:logging日志.py - 行号:[6] - 级别:WARNING - 日志信息:这是一个wanrning级别日志信息
- 当前时间:2022-11-13 11:01:30,492 - 所在文件:logging日志.py - 行号:[7] - 级别:ERROR - 日志信息:这是一个error级别日志信息
- 当前时间:2022-11-13 11:01:30,492 - 所在文件:logging日志.py - 行号:[8] - 级别:CRITICAL - 日志信息:这是一个critical级别日志信息
如需保存到日志文件中,应修改如下,filename为保存的文件名,filemode为文件模式,a即表示追加,以下将logging日志保存到log.txt日志文件中
logging.basicConfig(level=logging.DEBUG, format='当前时间:%(asctime)s - 所在文件:%(filename)s - 行号:[%(lineno)d] - 级别:%(levelname)s - 日志信息:%(message)s', filename='log.txt', filemode='a',)
在webServer.py文件中添加或修改如下代码
- import logging
-
- logging.basicConfig(level=logging.DEBUG, format='当前时间:%(asctime)s - 所在文件:%(filename)s - 行号:[%(lineno)d] - 级别:%(levelname)s - 日志信息:%(message)s', filename='log2.txt', filemode='a')
-
- def main():
- # 命令行方式执行
- if len(sys.argv) != 2: # 判断命令行参数个数是否为2
- print("请执行格式为[ python3 xx.py 9000 ] 的命令")
- logging.warning('用户命令行执行程序参数个数输入错误,请输入两个参数')
- return
- if not sys.argv[1].isdigit(): # 判断字符串是否为数字组成
- print("请执行格式为[ python3 xx.py 9000 ]的命令")
- logging.warning('用户命令行执行程序第二个参数不是数字')
- return
- port = int(sys.argv[1]) # 获取终端命令行参数
- web_server = HttpWebServer(port)
-
- # # 指定端口
- # web_server = HttpWebServer(9000)
- web_server.start()
- -----------------------HttpWebServer类中handle_client_request()函数-----------------------
- if request_path.endswith(".html"): # 判断是否是动态资源请求
- # 动态资源请求需找web框架进行处理,把请求参数给webFrame框架
-
- logging.info('动态资源请求日志信息为:' + request_path)
-
- # 准备需要给webFrame框架的参数信息,放在以下env字典中
- env = { # 字典存储用户的请求信息
- "request_path": request_path
- # 还可传入其他请求信息,如请求头
- }
-
- ……
- ……
-
- else: # 静态资源请求
- logging.info('静态资源请求日志信息为:' + request_path)
- try:
- with open('static' + request_path, 'rb') as file: # 动态打开指定文件
- file_data = file.read() # 读取指定文件数据
在webFrame.py文件的handle_request()函数中添加如下
- else: # 没有找到动态资源
- logging.error('资源不存在,未设置路由' + request_path)
- result = notFound()
- return result
log2.txt文件得到以下信息
- 当前时间:2022-11-13 14:51:03,404 - 所在文件:webServer.py - 行号:[104] - 级别:WARNING - 日志信息:用户命令行执行程序参数个数输入错误,请输入两个参数
- 当前时间:2022-11-13 14:52:34,959 - 所在文件:webServer.py - 行号:[108] - 级别:WARNING - 日志信息:用户命令行执行程序第二个参数不是数字
- 当前时间:2022-11-13 14:53:55,911 - 所在文件:webServer.py - 行号:[41] - 级别:INFO - 日志信息:动态资源请求日志信息为:/showCenter.html
- 当前时间:2022-11-13 14:53:55,967 - 所在文件:webServer.py - 行号:[73] - 级别:INFO - 日志信息:静态资源请求日志信息为:/plugins/bootstrap-3.4.1-dist/css/bootstrap.min.css
- 当前时间:2022-11-13 14:53:56,166 - 所在文件:webServer.py - 行号:[73] - 级别:INFO - 日志信息:静态资源请求日志信息为:/js/jquery-3.4.1.min.js
- 当前时间:2022-11-13 14:53:56,288 - 所在文件:webServer.py - 行号:[73] - 级别:INFO - 日志信息:静态资源请求日志信息为:/plugins/bootstrap-3.4.1-dist/js/bootstrap.min.js
- 当前时间:2022-11-13 14:53:56,712 - 所在文件:webServer.py - 行号:[41] - 级别:INFO - 日志信息:动态资源请求日志信息为:/center.html
- 当前时间:2022-11-13 14:53:56,772 - 所在文件:webServer.py - 行号:[73] - 级别:INFO - 日志信息:静态资源请求日志信息为:/favicon.ico
- 当前时间:2022-11-13 14:55:11,535 - 所在文件:webServer.py - 行号:[41] - 级别:INFO - 日志信息:动态资源请求日志信息为:/showCenter2.html
- 当前时间:2022-11-13 14:55:11,539 - 所在文件:mysqlToJson.py - 行号:[69] - 级别:ERROR - 日志信息:资源不存在,未设置路由/showCenter2.html
- 当前时间:2022-11-13 14:55:11,544 - 所在文件:mysqlToJson.py - 行号:[69] - 级别:ERROR - 日志信息:资源不存在,未设置路由/showCenter2.html
学习导航:http://xqnav.top/