1. 日志记录级别
定义的记录级别越低,信息越多,级别越高,信息越少。
级别 |
数值 |
CRITICAL |
50 |
ERROR |
40 |
WARNING |
30,默认 |
INFO |
20 |
DEBUG |
10 |
NOTSET |
0 |
2. 使用basicConfig方法配置logging记录格式
格式 |
描述 |
filename |
指定使用指定的文件名而不是StreamHandler创建FileHandler。 |
filemode |
指定打开文件的模式,如果指定了filename(如果文件模式未指定,则默认为’a’)。 |
format |
为处理程序使用指定的格式字符串。 |
datefmt |
使用指定的日期/时间格式。 |
level |
将根记录器级别设置为指定的级别。 |
handlers |
如果指定,这应该是一个已经创建的处理程序的迭代器添加到根记录器。任何尚未设置格式化程序的处理程序都将被分配在此函数中创建的默认格式化程序。 |
import threading
import logging
FORMAT = "%(asctime)s %(thread)d %(message)s"
logging.basicConfig(level=logging.INFO,format=FORMAT)
def add(x,y):
logging.warning("{} {}".format(threading.enumerate(),x+y))
t = threading.Timer(1,add,args=(4,5))
t.start()
运行结果:
2017-12-17 15:40:34,226 123145367023616 [<_MainThread(MainThread, stopped 4320629568)>, <Timer(Thread-1, started 123145367023616)>] 9
DATEFMT ="[%Y-%m-%d %H:%M:%S]"
FORMAT = "%(asctime)s %(thread)d %(message)s"
logging.basicConfig(level=logging.INFO,format=FORMAT,datefmt=DATEFMT)
logging.basicConfig(level=logging.INFO,format=FORMAT,datefmt=DATEFMT,filename='class_test.log')
import threading
import logging
DATEFMT ="[%Y-%m-%d %H:%M:%S]"
FORMAT = "%(asctime)s %(thread)d %(message)s"
logging.basicConfig(level=logging.INFO,format=FORMAT,datefmt=DATEFMT,filename='class_test.log')
def add(x,y):
logging.warning("{} {}".format(threading.enumerate(),x+y))
t = threading.Timer(1,add,args=(4,5))
t.start()
输出结果会追加写入当前模块路径的class_test.log文件:
[2017-12-17 15:50:13] 123145503244288 [<_MainThread(MainThread, stopped 4320629568)>, <Timer(Thread-1, started 123145503244288)>] 9