logging日志配置文件相关参数

level:级别
一个记录器是日志系统的一个实体,每一个记录器是一个已经命名好的可以将消息为进程写入的“桶”。 
每一个记录器都会有一个日志等级,每个等级描述了记录器即将处理的信息的严重性,python定义了以下六个等级: 
级别 值 描述 
CRITICAL 50 关键错误/消息,描述已经发生的严重问题 
ERROR 40 错误,描述已经发生的主要问题 
WARNING 30 警告消息,描述已经发生的小问题 
INFO 20 通知消息,普通的系统信息列表内容 
DEBUG 10 调试,出于调试目的的低层次系统信息 
NOTSET 0 无级别

处理器/记录器 关键字参数:
关键字参数 描述 
filename 将日志消息附加到指定文件名的文件 
filemode 指定用于打开文件模式, 文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。 
format 用于生成日志消息的格式字符串 
datefmt 用于输出日期和时间的格式字符串 
level 设置记录器的级别 
propagate 可以基于每个记录器控制该传播。 如果您不希望特定记录器传播到其父项,则可以关闭此行为。 
stream 提供打开的文件,用于把日志消息发送到文件。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。 
若同时列出了filename和stream两个参数,则stream参数会被忽略。

format: 日志消息格式
格式 描述 
%(name)s 记录器的名称 
%(levelno)s 数字形式的日志记录级别 
%(levelname)s 日志记录级别的文本名称 
%(filename)s 执行日志记录调用的源文件的文件名称 
%(pathname)s 执行日志记录调用的源文件的路径名称 
%(funcName)s 执行日志记录调用的函数名称 
%(module)s 执行日志记录调用的模块名称 
%(lineno)s 执行日志记录调用的行号 
%(created)s 执行日志记录的时间 
%(asctime)s 日期和时间 
%(msecs)s 毫秒部分 
%(thread)d 线程ID 
%(threadName)s 线程名称 
%(process)d 进程ID 
%(message)s 记录的消息

内置处理器
logging模块提供了一些处理器,可以通过各种方式处理日志消息。使用addHandler()方法将这些处理器添加给Logger对象。另外还可以为每个处理器配置它自己的筛选和级别。 
logging.StreamHandler 可以向类似与sys.stdout或者sys.stderr的任何文件对象(file object)输出信息 
logging.FileHandler 将日志消息写入文件filename。 
logging.handlers.DatagramHandler(host,port) 发送日志消息给位于制定host和port上的UDP服务器。使用UDP协议,将日志信息发送到网络 
logging.handlers.HTTPHandler(host, url) 使用HTTP的GET或POST方法将日志消息上传到一台HTTP 服务器。 
logging.handlers.RotatingFileHandler(filename) 将日志消息写入文件filename。如果文件的大小超出maxBytes制定的值,那么它将被备份为filenamel。 
logging.handlers.SocketHandler 使用TCP协议,将日志信息发送到网络。 
logging.handlers.SysLogHandler 日志输出到syslog 
logging.handlers.NTEventLogHandler 远程输出日志到Windows NT/2000/XP的事件日志 
logging.handlers.SMTPHandler 远程输出日志到邮件地址 
logging.handlers.MemoryHandler 日志输出到内存中的制定buffer 
注意:由于内置处理器还有很多,如果想更深入了解。可以查看官方手册。

django提供的内置记录器
django 在Django层次结构中的所有消息记录器。没有使用此名称发布消息,而是使用下面的记录器之一。 
django.request 与请求处理相关的日志消息。5xx响应被提升为错误消息;4xx响应被提升为警告消息。 
django.server 与由RunServer命令调用的服务器所接收的请求的处理相关的日志消息。HTTP 5XX响应被记录为错误消息,4XX响应被记录为警告消息,其他一切都被记录为INFO。 
django.template 与模板呈现相关的日志消息 
django.db.backends 有关代码与数据库交互的消息。例如,请求执行的每个应用程序级SQL语句都在调试级别记录到此记录器。

部署生产环境建议使用的方法
很多时候我们在代码中会增加很多print 来打印一些调试和测试的内容,默认情况下这些内容全部打印在控制台。 
问题是生产环境上,进程都是后台运行的,所有我们可以使用,将控制台打印的所有内容全部重定向到日志文件即可。 
参考我上面的配置,在console的handler中配置了‘stream’: ‘ext://sys.stdout’, 
它会将我们的控制台输出全部重定向写入到文件中去。 
命令是: 
这条命令含义是:在后台运行进程,并将所有的控制台输出全部重定向到文件

nohup python manage.py runserver >>/home/aea/log/test.log &
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值