网站seo诊断湖南岚鸿诊断网上购物系统源码
news/
2025/9/23 17:21:28/
文章来源:
网站seo诊断湖南岚鸿诊断,网上购物系统源码,做网站起什么题目,浙江建设职业技术学院塘栖校区网站目录 1、日志输出到文件
2、日志输出到屏幕
3、设置输出等级
4、设置多个日志输出对象
5、日志的配置
6、记录异常
7、设置日志输出样式1、日志输出到文件basicConfig()提供了非常便捷的方式让你配置logging模块并马上开始使用。什么都不配置直接使用默认值在控制台中打log用这样的方式替换print语句对日后项目维护会有很大帮助。但是如果设置了filename输出到文件就不会再在屏幕上打印。 例子1.1 import logginglogging.basicConfig(filenameexample.log, levellogging.DEBUG)
logging.debug(This message should go to the log file)当前目录下会生成example.log文件其中有如下内容DEBUG:root:This message should go to the log file 2、日志输出到屏幕例子2.1 import logginglogging.basicConfig(levellogging.DEBUG)
logging.debug(This message should go to the log file)屏幕输出DEBUG:root:This message should go to the log file 3、设置输出等级默认情况下logging将日志打印到屏幕日志级别默认为WARNING低于该级别的日志将不被打印。日志级别大小关系为CRITICAL ERROR WARNING INFO DEBUG NOTSET当然也可以自己定义日志级别。日志优先级分为debug : 10 info : 20 warning : 30 error : 40basicConfig()中levellogging.INFO是为所有日志对象设置初始级别。例子3.1——对logging设置等级可通过logger.setLevel(logging.DEBUG)为个体日志对象设定级别。例子3.2——对logger设置等级 例子3.1——对logging设置等级 import logginglogging.basicConfig(levellogging.INFO)
# start reading database
logging.info(Start reading database)
# update records here
logging.info(Finish updating records)屏幕输出INFO:__main__:Start reading databaseINFO:__main__:Finish updating records 例子3.2——对logger设置等级 import logginglogging.basicConfig(levellogging.INFO)#必须有初始等级logger1 logging.getLogger(log1)
logger1.setLevel(logging.INFO)
# Start reading database
logger1.info(Start reading database)
# update records here
logger1.info(Finish updating records)logger2 logging.getLogger(log2)
logger2.setLevel(logging.DEBUG)
# Start reading database
logger2.info(Start reading database)
logger2.debug(666)
# update records here
logger2.info(Finish updating records)屏幕输出INFO:log1:Start reading databaseINFO:log1:Finish updating recordsINFO:log2:Start reading databaseDEBUG:log2:666INFO:log2:Finish updating records 4、设置多个日志输出对象 import logginglogging.basicConfig(levellogging.INFO)
# 获取logger实例如果参数为空则返回root
logger1 logging.getLogger(log1)
# Start reading database
logger1.info(Start reading database)
# update records here
logger1.info(Finish updating records)logger2 logging.getLogger(log2)
logger2.setLevel(logging.DEBUG)
# Start reading database
logger2.info(Start reading database)
logger2.debug(666)
# update records here
logger2.info(Finish updating records)屏幕输出INFO:log1:Start reading databaseINFO:log1:Finish updating recordsINFO:log2:Start reading databaseDEBUG:log2:666INFO:log2:Finish updating records 5、日志的配置作为开发者我们可以通过以下3中方式来配置logging:1使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数2创建一个日志配置文件然后使用fileConfig()函数来读取该文件的内容3创建一个包含配置信息的dict然后把它传递个dictConfig()函数 参考http://python.jobbole.com/81666/https://www.cnblogs.com/wswang/p/6138304.htmlhttp://www.jb51.net/article/114316.htm 6、记录异常 try:
1 / 0
except:
# 等同于error级别但是会额外记录当前抛出的异常堆栈信息
logger.exception(this is an exception message)7、设置日志输出样式fmt中允许使用的变量可以参考下表。 %(name)s Logger的名字%(levelno)s 数字形式的日志级别%(levelname)s 文本形式的日志级别%(pathname)s 调用日志输出函数的模块的完整路径名可能没有%(filename)s 调用日志输出函数的模块的文件名%(module)s 调用日志输出函数的模块名|%(funcName)s 调用日志输出函数的函数名|%(lineno)d 调用日志输出函数的语句所在的代码行%(created)f 当前时间用UNIX标准的表示时间的浮点数表示|%(relativeCreated)d 输出日志信息时的自Logger创建以来的毫秒数|%(asctime)s 字符串形式的当前时间。默认格式是“2003-07-08 16:49:45,896”。逗号后面的是毫秒%(thread)d 线程ID。可能没有%(threadName)s 线程名。可能没有%(process)d 进程ID。可能没有%(message)s 用户输出的消息 例子7.1——对logging设置日志输出样式 import logging
import time# 日志初始配置写入日志文件
logging.basicConfig(
levellogging.DEBUG, # 设置写入级别。日志级别大小关系为CRITICAL ERROR WARNING INFO DEBUG NOTSET
# 设置写入样式。2018-01-12 13:09:02|mytest.py|module|line:9|INFO|start runing
format%(asctime)s|%(filename)s|%(funcName)s|line:%(lineno)d|%(levelname)s|%(message)s,
datefmt%Y-%m-%d %X,
filenametime.strftime(%Y%m%d) .log # 写入文件位置和文件名
)# 控制台打印输出日志
console logging.StreamHandler() # 定义一个StreamHandler将INFO级别或更高的日志信息打印到标准错误并将其添加到当前的日志处理对象
formatter logging.Formatter(fmt%(asctime)s|%(name)-8s: %(levelname)-8s| %(message)s,datefmt%Y-%m-%d %H:%M:%S) # 控制台输出样式
console.setFormatter(formatter)
logging.getLogger().addHandler(console)
console.setLevel(logging.INFO) # 设置要打印日志的等级低于这一等级不会打印# 定义日志内容用于写入日志文件和控制台的打印
logging.critical(CRITICAL le) # 定义严重日志内容
logging.error(error le) # 定义错误日志内容
try:
1 / 0
except Exception as e:
logging.warning(exception: %s, e) # 定义警告日志内容
logging.info(start runing) # 定义消息日志内容
logging.info(login done)
str1 lalala
logging.debug(\n%s\n, str1) # 定义调试日志内容控制台输出2018-02-09 14:12:31|root : CRITICAL| CRITICAL le2018-02-09 14:12:31|root : ERROR | error le2018-02-09 14:12:31|root : WARNING | exception: division by zero2018-02-09 14:12:31|root : INFO | start runing2018-02-09 14:12:31|root : INFO | login done日志文件写入:2018-02-09 14:11:30|004-日志简单使用.py|module|line:21|CRITICAL|CRITICAL le2018-02-09 14:11:30|004-日志简单使用.py|module|line:22|ERROR|error le2018-02-09 14:11:30|004-日志简单使用.py|module|line:26|WARNING|exception: division by zero2018-02-09 14:11:30|004-日志简单使用.py|module|line:27|INFO|start runing2018-02-09 14:11:30|004-日志简单使用.py|module|line:28|INFO|login done2018-02-09 14:11:30|004-日志简单使用.py|module|line:30|DEBUG|lalala 例子7.2——对logger实例设置日志输出样式 import logging
import sys# 获取logger实例如果参数为空则返回root logger
logger logging.getLogger(AppName)# 指定logger输出格式
formatter logging.Formatter(%(asctime)s %(levelname)-8s: %(message)s)# 文件日志
file_handler logging.FileHandler(test.log)#创建文件的日志处理器
file_handler.setFormatter(formatter) # 可以通过setFormatter指定输出格式# 控制台日志
console_handler logging.StreamHandler(sys.stdout)#创建控制台的日志处理器
console_handler.formatter formatter # 也可以直接给formatter赋值# 为logger添加的日志处理器
logger.addHandler(file_handler)
logger.addHandler(console_handler)# 指定日志的最低输出级别默认为WARN级别
logger.setLevel(logging.INFO)# 输出不同级别的log
logger.debug(this is debug info)
logger.info(this is information)
logger.warning(this is warning message)
logger.error(this is error message)
logger.fatal(this is fatal message, it is same as logger.critical)
logger.critical(this is critical message)屏幕输出也是日志文件写入2018-02-09 14:00:22,857 INFO : this is information2018-02-09 14:00:22,857 WARNING : this is warning message2018-02-09 14:00:22,857 ERROR : this is error message2018-02-09 14:00:22,857 CRITICAL: this is fatal message, it is same as logger.critical2018-02-09 14:00:22,857 CRITICAL: this is critical message 延伸 系统日志参考 https://www.jianshu.com/p/abb6148c15b4转载于:https://www.cnblogs.com/andy9468/p/8435854.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913300.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!