【Python】web.py日志模块
本文最后更新于 1250 天前,其中的信息可能已经有所发展或是发生改变。

简介

web.py自带有webserver日志,会在运行的时候输出到控制台;如果我们需要记录日志,可以用wsgilog来操作内置的webserver的日志,并做其为中间件加到应用中。
官网推荐的案例链接:https://webpy.org/cookbook/logging.zh-cn
本案例以官网推荐的方式就进行改造。

教程

1.公共参数

配置一个公共参数的文件,用于日志的参数。
util/config.py

# -*- coding: UTF-8 -*-
import logging

# 日志文件路径
file = "logs/webpy.log"
# 日志格式
logformat = "[%(asctime)s] %(filename)s:%(lineno)d(%(funcName)s): [%(levelname)s] %(message)s"
#日志中显示的时间格式
datefmt = "%Y-%m-%d %H:%M:%S"
#日志级别
loglevel = logging.INFO
#每隔一天生成一个日志文件
interval = "d"
#后台保留日志文件的数量
backups = 10

2.编写Log类

写一个Log类继承wsgilog.WsgiLog,在init中把参数传给基类。
注意:这里引入的是LogStdout而不是官网的LogIO,最新版有所变动。
util/log.py

# -*- coding: UTF-8 -*-
import sys,logging
from wsgilog import WsgiLog, LogStdout
import util.config

class Log(WsgiLog):
    def __init__(self, application):
        WsgiLog.__init__(
            self,
            application,
            logformat=util.config.logformat,
            datefmt=util.config.datefmt,
            tofile=True,
            file=util.config.file,
            interval=util.config.interval,
            backups=util.config.backups,
            toprint=True,
            prnlevel=util.config.loglevel,
            )
        #将控制台输出放入INFO级别的日志
        sys.stdout = LogStdout(self.logger, logging.INFO)
        #将错误日志放入ERROR级别的日志
        sys.stderr = LogStdout(self.logger, logging.ERROR)

3.应用启动传递应用

import web
from util.log import Log

#关闭调试模式
web.config.debug = False

urls = (
    '/favicon.ico','favicon',
)
app = web.application(urls, globals())
app.run(Log)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇