python 日志输出,python日志输出

importlogging

logger= logging.getLogger() #生成一个日志对象,()内为日志对象的名字,可以不带,名字不给定就是root,一般给定名字,否则会把其他的日志输出也会打印到你的文件里。

handler=logging.FileHandler("Log_test.txt") #生成一个handler(处理器),

#formatter 下面代码指定日志的输出格式

fmt= '%(asctime)s - %(filename)s:%(lineno)s - %(name)s - %(message)s'formatter= logging.Formatter(fmt) #实例化formatter

handler.setFormatter(formatter)#为handler添加formatter

logger.addHandler(handler)

logger.setLevel(logging.NOTSET)#设置日志输出信息的级别

logger.error("This is an error message") #输出设置小于级别的将不会输出,所以此处的设置应该比setLevel高

logger.info("This is an info message")

logger.critical("This is a critical message")

python可以生成很多handler,负责把logger创建的日志信息发送到指定的目的地,不同的Handler种类发送到不同的目的地。FileHandler将日志信息写入到文件中;StreamHandler将日志信息输出到控制台;SMTPHandler将日志信息以邮件的形式发送出去;SocketHandler将日志信息用TCP Socket发送出去;DatagramHandler将日志信息用UDP数据报发送出去

formatter的格式

属性名称

格式

说明

name

%(name)s

日志的名称

asctime

%(asctime)s

可读时间,默认格式‘2003-07-08 16:49:45,896’,逗号之后是毫秒

filename

%(filename)s

文件名,pathname的一部分

pathname

%(pathname)s

文件的全路径名称

funcName

%(funcName)s

调用日志多对应的方法名

levelname

%(levelname)s

日志的等级

levelno

%(levelno)s

数字化的日志等级

lineno

%(lineno)d

被记录日志在源码中的行数

module

%(module)s

模块名

msecs

%(msecs)d

时间中的毫秒部分

process

%(process)d

进程的ID

processName

%(processName)s

进程的名称

thread

%(thread)d

线程的ID

threadName

%(threadName)s

线程的名称

relativeCreated

%(relativeCreated)d

日志被创建的相对时间,以毫秒为单位

日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别

logging.getLogger([name])

创建Logger对象。日志记录的工作主要由Logger对象来完成。在调用getLogger时要提供Logger的名称(注:多次使用相同名称 来调用getLogger,返回的是同一个对象的引用。),Logger实例之间有层次关系,这些关系通过Logger名称来体现,如:

p = logging.getLogger("root")

c1 = logging.getLogger("root.c1")

c2 = logging.getLogger("root.c2")

例子中,p是父logger, c1,c2分别是p的子logger。c1, c2将继承p的设置。如果省略了name参数, getLogger将返回日志对象层次关系中的根Logger。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,可以使用标准库中的 logging 模块来实现日志输出到多个文件。下面是一个简单的示例代码,演示了如何将日志同时输出到两个不同的文件中: ```python import logging # 创建 logger 对象 logger = logging.getLogger(__name__) # 创建文件处理器,将日志输出到 file1.log 文件中 file_handler_1 = logging.FileHandler('file1.log') file_handler_1.setLevel(logging.INFO) # 创建文件处理器,将日志输出到 file2.log 文件中 file_handler_2 = logging.FileHandler('file2.log') file_handler_2.setLevel(logging.WARNING) # 设置日志格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler_1.setFormatter(formatter) file_handler_2.setFormatter(formatter) # 将处理器添加到 logger 对象中 logger.addHandler(file_handler_1) logger.addHandler(file_handler_2) # 输出日志信息 logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 在上面的代码中,我们首先创建了一个 logger 对象,并为其设置了两个不同的文件处理器。然后,我们设置了日志级别和日志格式,并将处理器添加到 logger 对象中。最后,我们通过 logger 对象输出了一些日志信息。 在运行上面的代码后,会在当前目录下生成两个日志文件:file1.log 和 file2.log。其中,file1.log 中包含了所有级别的日志信息,而 file2.log 中只包含了 WARNING、ERROR 和 CRITICAL 级别的日志信息。 如果需要输出到更多的日志文件,只需要创建更多的文件处理器,并将它们添加到 logger 对象中即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值