print实际上是操作文件,非常耗时间,程序效率不是特别高
#log 日志,管理员,服务器上做操作,消费记录,淘宝
#日志:
#给我们在内部操作的时候提供很多遍历
#给用户提供更多的信息
#在程序的使用的过程中,自己调试需要看的信息
#帮助程序员排查程序的问题
#logging模块 不会自动帮你添加日志的内容,是你自己想打印什么,你就写什么
logging模块 分为五种模式:
import logging
logging.debug('debug message') #1.debug 调试模式,级别最低
logging.info('info message') #2.info 显示正常信息
logging.warning('warning message') #3.warning 显示警告信息
logging.error('error message') #4.error 显示错误信息
logging.critical('critical message') #5.critical 显示严重错误信息
#返回:WARNING:root:warning message
#ERROR:root:error message
#CRITICAL:root:critical message
#默认情况下,只显示警告及警告级别的以上信息
#返回:WARNING:root:warning message
#ERROR:root:error message
#CRITICAL:root:critical message
#日志 简单的配置 注意大写的地方
# logging.basicConfig(level=logging.INFO) #level水平,basicConfig基本配置,可以理解为基本配置水平可以指定下面的某种模式,
# # 假如指定模式为DEBUG(这里必须大写level=logging.DEBUG),那么DEBUG下面的模式也会打印出来
# #如果写成INFO那下面的模式也会打印,根据指定的模式来定,只能通过level来约束下面的模式,
#
# logging.debug('debug message') #1.debug 调试模式,级别最低
# logging.info('info message') #2.info 显示正常信息
# logging.warning('warning message') #3.warning 显示警告信息
# logging.error('error message') #4.error 显示错误信息
# logging.critical('critical message') #5.critical 显示严重错误信息
#日志 简单的配置 注意大写的地方
# logging.basicConfig(level=logging.DEBUG,
# format ='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',
# datefmt ='%a, %d %b %Y %H:%M:%S',
# filename='userinfo.log')
# # filemode='w')
# #format, datefmts 是打用格式化的方式打印记录的一些信息asctime-->时间,filename-->文件名,lineno-->此时信息的所在行,levelname-->模式名(debug等),message-->模式下的信息.
# #filename 输出到文件,就新建了一个文件
# logging.debug('debug message')
# logging.info('info message')
# logging.warning('warning message')
# logging.error('error message')
# logging.critical('critical message') #message信息,是可以改变的,根据你需要打印的信息来定.
#
#日志 简单的配置最大的问题.
#编码格式不能设置
#不能同时输出到文件的屏幕
#=========================================================================================================================================
#配置logger对象 注意大写的地方
#
import logging
# logger = logging.getLogger() #实例化了一个logger对象
# # 创建一个handler,用于写入日志文件,操作文件
# fh = logging.FileHandler('test.log',encoding='utf-8') # 实例化一个文件句柄,这可以理解Handler相当于是创建一个文件,试过只是用这步,写进去的非乱码的信息,经过吸星大法步骤之后变正常,FileHandler用于输出到文件
#创建文件是以为.log结尾
#
# #吸星大法,(将实例化的logger对象,和# handler 存进来
# logger.addHandler(fh) #addHandler管理往文件里输出的 ,用addHandler往文件里输出信息
# logging.error('error message') #logging.error('error message'),输出你要输出的信息,信息只能是那五种模式
#同样怎么输出到屏幕呢?前面俩步方法一样,后面
# import logging
# logger = logging.getLogger() #实例化了一个logger对象
# sh = logging.StreamHandler() #创建一个StreamHandler用于输出到屏幕,这后面不需要加参数,可以理解为屏幕句柄
# logger.addHandler(sh) #addHandler接受sh就将文件信息输出到屏幕
# logging.warning('warning message') #
#首先创造一个logger对象,然后用FileHandler创建一个操作文件的方法,然后用addHandler放到logger对象里,使用,然后用logging.信息,就可以输出一段信息,
# FileHandler用于输出到文件 ,StreamHandler用于输出到屏幕