python文件输出log_python3:logging模块 输出日志到文件

python自动化测试脚本运行后,想要将日志保存到某个特定文件,使用python的logging模块实现

参考代码:

import logging

def initLogging(logFilename,e):

logging.basicConfig(

level = logging.INFO,

format ='%(asctime)s-%(levelname)s-%(message)s',

datefmt = '%y-%m-%d %H:%M',

filename = logFilename,

filemode = 'a')

filehandler = logging.FileHandler(logFilename,encoding='utf-8')

logging.getLogger().addHandler(filehandler )

log = logging.exception(e)

return log

1.日志级别使用场景:

在终端输出程序或脚本的使用方法:print

报告一个事件的发生(例如状态的修改):logging.info()或logging.debug()

发生了一个特定的警告性的事件:logging.warn()

发生了一个特定的错误性的事件:raise

发生了一个特定的错误性的事件,但是又不想因为此错误导致程序退出(例如程序是一个守护进程):logging.error(),logging.exception(),logging.critical()

2.logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

level:设置日志级别

format:指定handler使用的日志显示格式

datefmt:指定日期时间格式,如果format参数中存在asctime,则需要指定时间格式

filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中

filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”

3.format参数中可能用到的格式化串:

%(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用户输出的消息

4.logging模块的了解,必须知道:Logger,Handler,Formatter,Filter

(1)logger 提供了应用程序可以直接使用的接口

每个程序在输出信息之前都要获得一个Logger

Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler

(2)handler 将(logger创建的)日志记录发送到合适的目的输出

logging.FileHandler用于向一个文件输出日志信息,不过FileHandler会帮你打开这个文件。它的构造函数是:

FileHandler(filename[,mode])filename是文件名,必须指定一个文件名;mode是文件的打开方式

(3)filter 提供了细度设备来决定输出哪条日志记录

(4)formatter 决定日志记录的最终输出格式

5.输出日志结果:

18-06-12 17:34-ERROR-string indices must be integers

Traceback (most recent call last):

File "C:/Users/xx/Documents/GitHub/python3/main/run_test.py", line 70, in go_on_run

op_header.write_cookie()

File "C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 30, in write_cookie

cookie = requests.utils.dict_from_cookiejar(self.get_cookie())

File "C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 25, in get_cookie

url = self.get_response_url()+"&callback=jQuery21008240514814031887_1508666806688&_=1508666806689"

File "C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 18, in get_response_url

url = self.response['data']['url'][0]

TypeError: string indices must be integers

参考文档:

通过python的logging模块输出日志文件

import logging import sys #获取logger实例 logger = logging.getLogger("baseSpider") # 括号后面填运行的文 ...

Python Logging模块 输出日志颜色、过期清理和日志滚动备份

# coding:utf-8 import logging from logging.handlers import RotatingFileHandler # 按文件大小滚动备份 import co ...

Python3 logging 模块

Python3 logging模块 日志模块: 用于便捷记录日志且线程安全的模块 CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN ...

logging模块及日志框架

logging模块及日志框架 logging模块 一.导入方式 import logging 二.作用 写日志 三.模块功能 3.1 经常使用 # V1 import logging logging ...

3-log4j2之输出日志到文件

一.添加maven依赖 org.apache.logging.log4j...

Python3 logging模块&;ConfigParser模块

''' 博客园 Infi_chu ''' ''' logging模块 该模块是关于日志相关操作的模块 ''' import logging # logging.debug('debug') # log ...

python 学习笔记 -logging模块(日志)

模块级函数 logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root loggerlogging.debug().logging.info().lo ...

python3 logging模块

很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误,警告等信息输出,python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志级别等级:cri ...

logging模块,程序日志模板

6.11自我总结 1.logging模块 用于程序的运行日志 1.初级 #首先程序运行分会出现5中情况 1.logging.info('info') #程序正常运行级别为10 2.logging.de ...

随机推荐

android之电话拨号器

在android入门的案例中,除了HelloWorld这个经典案例,还有一个电话拨号器需要掌握,现在我就来个电话拨号器的示范,毕竟大牛也是从菜鸟进化而来的. 首先你应该知道自己要设置怎样的UI,然后创 ...

Linux命令行下编译Android NDK的示例代码

这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用.所以花了点时间研究 Android ND ...

java 访问活动目录代码

package demo; import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnu ...

Java SAX Parser

SAX is an abbreviation and means "Simple API for XML". A Java SAX XML parser is a stream o ...

SQL Prompt Snippet Manager 妙用

SQL Prompt有一个很好用的工具叫Snippet Manager,SQL脚本片段管理器. 使用它可以快速的键入一段脚本,如输入ii+Tab,即可变成INSERT INTO 同理,我们可以定义一些 ...

【PHP】 安装参数

1. 配置参数 './configure' '--prefix=/usr/local/php5.2' '--with-apxs2=/usr/sbin/apxs' '--with-mysql=/usr/ ...

jackson 用法总结

1.序列化与反序列化封装 private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class); /** * Obj ...

【BZOJ3379】[Usaco2004 Open]Turning in Homework 交作业

题解: 比较容易想到二分答案+时间逆流 这样就变成了经典的路灯问题 f[a][b][0/1] 其实可以不用二分答案 根据倒着考虑我们会发现一定是先走旁边的再走中间的 计算到当前点+下课时间所需的最小时 ...

halcon电路断裂检测

read_image (Image, 'pcb')dev_close_window ()get_image_size (Image, Width, Height)dev_open_window (0, ...

windows 活动目录双向信任配置

活动目录A:ess.com 192.168.1.20/24 活动目录B:ups.com  192.168.1.30/24 Step1:在活动目录B的域控制器上配置域的林双向信任关系,并且可传递,如下图 ...

你可能感兴趣的:(python文件输出log)