📜  hj (1)

📅  最后修改于: 2023-12-03 15:01:08.751000             🧑  作者: Mango

hj 简介

hj 是一款基于 Python 的日志处理工具库。它的主要特点是高效、易用,支持多种日志格式解析,以及自定义日志规则。hj 旨在为程序员提供方便的日志处理解决方案。

特点
  • 高效: hj 使用 C 语言编写的底层解析引擎,性能高效,在处理庞大日志文件时表现尤为优秀。
  • 易用: hj 提供简单易用的 API 和文档说明,完善的用户指南,让非专业程序员也能轻松上手。
  • 多种日志格式解析: hj 内置多种流行日志格式的解析器,例如 Apache Log、Nginx Log、JSON 等,支持各种格式的日志处理。
  • 自定义日志规则: hj 支持自定义规则,以适应各式环境下的日志需求。
安装

通过 pip 安装:

pip install hj
示例
Apache Log
import hj

format = '%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"'
log = hj.ApacheLog(format)
result = log.parse('127.0.0.1 - james [09/May/2018:16:00:39 +0800] "GET /index.html HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"')
print(result)

输出:

{
    "origin": "127.0.0.1 - james [09/May/2018:16:00:39 +0800] \"GET /index.html HTTP/1.0\" 200 2326 \"http://www.example.com/start.html\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3\"",
    "remote_host": "127.0.0.1",
    "remote_logname": "-",
    "remote_user": "james",
    "time_received": "09/May/2018:16:00:39 +0800",
    "request_line": "GET /index.html HTTP/1.0",
    "status": "200",
    "response_bytes": "2326",
    "request_header_referer": "http://www.example.com/start.html",
    "request_header_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}
JSON
import hj

format = '{ "name": "%{name:s}", "age": %{age:d}, "salary": %{salary:f} }'
log = hj.JSONLog(format)
result = log.parse('{ "name": "james", "age": 28, "salary": 5000.0 }')
print(result)

输出:

{
    "origin": "{ \"name\": \"james\", \"age\": 28, \"salary\": 5000.0 }",
    "name": "james",
    "age": 28,
    "salary": 5000.0
}
更多示例

请参考 hj 官方文档:https://hj.readthedocs.io/

总结

hj 是一款基于 Python 的高效、易用的日志处理工具库,它支持多种日志格式解析,以及自定义日志规则,旨在为程序员提供方便的日志处理解决方案。通过 hj,程序员可以更加方便地处理各式各样的日志数据。