通过CherryPy的日志记录功能来跟踪用户行为和操作
发布时间:2024-01-02 19:22:11
CherryPy 是一个轻量级的 Python web 框架,它提供了日志记录功能来帮助开发人员跟踪用户行为和操作。CherryPy 使用 Python 的标准 logging 模块来记录日志,可以将日志消息保存到文件、控制台或其他地方。
下面是通过 CherryPy 的日志记录功能来跟踪用户行为和操作的一个简单示例:
import cherrypy
import logging
# 配置日志记录
cherrypy.log.error_file = "error.log"
cherrypy.log.access_file = "access.log"
# 创建一个 logger 实例
logger = logging.getLogger(__name__)
# 配置 logger 输出的格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 创建一个文件处理器来保存错误日志
error_handler = logging.FileHandler("error.log")
error_handler.setLevel(logging.ERROR)
error_handler.setFormatter(formatter)
logger.addHandler(error_handler)
# 创建一个文件处理器来保存访问日志
access_handler = logging.FileHandler("access.log")
access_handler.setLevel(logging.INFO)
access_handler.setFormatter(formatter)
logger.addHandler(access_handler)
class HelloWorld:
@cherrypy.expose
def index(self):
# 记录网页访问日志
logger.info("User accessed index page")
return "Hello, world!"
@cherrypy.expose
def login(self, username, password):
# 模拟登录逻辑
if username == "admin" and password == "password":
# 登录成功,记录成功登录日志
logger.info("User logged in successfully")
return "Login successful"
else:
# 登录失败,记录登录错误日志
logger.error("Failed login attempt for user: %s" % username)
return "Login failed"
if __name__ == "__main__":
cherrypy.quickstart(HelloWorld())
在上面的示例中,我们首先配置了日志记录的输出文件,error.log 用于保存错误日志,access.log 用于保存访问日志。然后创建了一个 logger 实例,并配置了输出格式和两个文件处理器来保存不同级别的日志消息。在 HelloWorld 类的 index 方法中,当用户访问首页时会记录一条访问日志。在 login 方法中,当用户尝试登录时会记录成功或失败的登录日志。
可以通过运行示例代码来启动 CherryPy 服务器,并在浏览器中访问 http://localhost:8080 来调用 index 方法和 http://localhost:8080/login?username=admin&password=password 来调用 login 方法。然后可以打开 error.log 和 access.log 文件来查看日志消息。
通过 CherryPy 的日志记录功能,我们可以方便地跟踪用户行为和操作,从而更好地监控和分析系统的运行情况,及时发现和解决问题。
