python 日志打印模块,输出时间、文件名、行号等信息
通过logging模块来控制日志的输出,相比print直接格式化输出,更加的方便;可以添加更多的日志信息,比如时间、行号、文件信息统一输出;可以通过 setLevel 来统一控制日志的开启与关闭。
下面是参考代码:
import logging
logging.basicConfig(format='%(asctime)s.%(msecs)03d [%(levelname)s] [%(filename)s:%(lineno)d] %(message)s',
datefmt='## %Y-%m-%d %H:%M:%S')
logging.getLogger().setLevel(logging.DEBUG)
logger = logging.getLogger()
logger.debug("This is a debug log")
logger.info("This is an info log")
logger.critical("This is critical")
logger.error("An error occurred\n")
输出结果:
29-02-2020:12:41:17,935 DEBUG [log.py:11] This is a debug log
29-02-2020:12:41:17,935 INFO [log.py:12] This is an info log
29-02-2020:12:41:17,935 CRITICAL [log.py:13] This is critical
29-02-2020:12:41:17,935 ERROR [log.py:14] An error occurred
如果在项目中需要设置多个不同的日志输出器,可以参考下面的代码:
import logging
logging.basicConfig(format='%(asctime)s.%(msecs)03d [%(levelname)s] [%(filename)s:%(lineno)d] %(message)s',
datefmt='## %Y-%m-%d %H:%M:%S')
logging.getLogger("test").setLevel(logging.DEBUG)
logger = logging.getLogger("test")
logging.getLogger("info").setLevel(logging.INFO)
logger2 = logging.getLogger("info")
logger.debug("This is a debug log")
logger.info("This is an info log")
logger.critical("This is critical")
logger.error("An error occurred\n")
logger2.debug("This is a debug log")
logger2.info("This is an info log")
logger2.critical("This is critical")
logger2.error("An error occurred")
输出结果:
29-02-2020:12:36:30,272 DEBUG [log.py:17] This is a debug log
29-02-2020:12:36:30,272 INFO [log.py:18] This is an info log
29-02-2020:12:36:30,272 CRITICAL [log.py:19] This is critical
29-02-2020:12:36:30,272 ERROR [log.py:20] An error occurred
29-02-2020:12:36:30,273 INFO [log.py:23] This is an info log
29-02-2020:12:36:30,273 CRITICAL [log.py:24] This is critical
29-02-2020:12:36:30,273 ERROR [log.py:25] An error occurred
python 日志打印模块,输出时间、文件名、行号等信息通过logging模块来控制日志的输出,相比print直接格式化输出,更加的方便;可以添加更多的日志信息,比如时间、行号、文件信息统一输出;可以通过 setLevel 来统一控制日志的开启与关闭。下面是参考代码:#!/usr/bin/env python# -*-coding:UTF-8-*-import logginglogg...
logging模块简介
logging模块是Python内置的日志模块,用来生成程序的日志。一条日志对应一个事件的发生,一个事件一般包括:事件发生时间、事件发生位置、事件内容、事件严重程度-日志级别。(还可以包括进程ID、进程名称、线程ID、线程名称等)
logging模块的组成
1.日志级别:日志分为五个等级,从低到高分别是:DEBUG、INFO、WANGING、ERROR、CRITICAL
DEBUG:最详细的信息,通常定位问题的时候用
INFO:确认一切按照预期运行,详细程度仅次于DEBUG
def Log(msg,line,name):
#文件地址 __file__,可选添加
date = time.strftime('%Y.%m.%d %H:%M:%S ',time.localtime(time.time()))
print(date+':'+ msg +', Line '+line+' , in '+name)
Logging是python自带的模块,这个模块支持输出不同级别的日志,可以输出到控制台和写入文件,支持TCP、HTTP、GET/POST、SMTP、Socket等协议,将日志信息发送到网络等等。
Logging提供5个等级的输出,CRITICAL > ERROR >
WARNING > INFO > DEBUG > NOTSET,如果把
logger = logging.getLogger()
formatter = logging.Formatter('%(asctime)s.%(msecs)03d-%(name)s-%(filename)s-[line:%(lineno)d]'
'-%(levelname)s-[日志信息]: ...
import sys
def init_logging(log_file, stdout=False):
formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(module)s: %(message)s',
datefmt='%m/%d/%Y %H:%M:%S')
print('Ma.
python中的很多模块是非常牛X的,之前提到过logging模块(其功能类似于java下的Log4j ),由于最近一个涉及网络排障的脚本需要日志输出,这里就使用了python的logging模块去实现。日志全部写到一个文件中时,随着时间的推移文件会越来越来,这里可以利用TimedRotatingFileHandler方法或RotatingFileHandler方法来进行处理。
在日志输出不涉及...
【代码】python logging模块使用。
- 利用logging模块做了一个类和一个装饰器,可以将代码直接拷贝到自己的工程中使用,测试代码和说明下面也都有。
- 日志会自动生成文件并且按照日期存储
- 日志会同时输出到控制台和文件中
- 使用时可以看使用示例
```cpp
#include <iostream>
#define PRINT_LOCATION std::cout << "File: " << __FILE__ << ", Line: " << __LINE__ << std::endl;
该代码中,`__FILE__`用于获取当前文件名,`__LINE__`用于获取当前行号。
第四步,调用上述宏定义即可实现打印文件名及行号。例如:
```cpp
int main() {
PRINT_LOCATION
// 其他代码
return 0;
当程序执行到`PRINT_LOCATION`时,控制台将输出类似于`File: filename.cpp, Line: 7`的信息,其中`filename.cpp`是当前文件名,而`7`是当前代码所在的行号。
通过以上步骤,我们可以在VS2017中实现打印文件名及行号的功能。这对于调试程序或者了解代码执行位置非常有帮助。
ffmpeg 硬压字幕的实现
幺蛾子370:
ffmpeg 添加 sei 编码信息和解析
风清扬fzzf:
ffmpeg 添加 sei 编码信息和解析
风清扬fzzf:
ffmpeg 视频倍速播放 和 慢速播放
tp20c5: