tmf/logfilter

一个用于过滤Web服务器访问日志的命令行应用程序

dev-master 2015-03-23 23:13 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:10:31 UTC


README

Logfilter是一个PHP命令行应用程序,它从Web服务器的访问日志中消耗日志条目。然后每个日志条目都通过使用Symfony EventDispatcher组件实现的过滤器链进行处理,您可以在config.yml中通过容器服务定义添加自己的过滤器。想法是日志条目可以沿着过滤器链传递(或阻止)。每个过滤器(一个事件监听器)也可以影响日志条目的传播或分发新事件(如禁止主机)。

用法

  1. 使用config.yml配置过滤器链:声明您的EventListener作为服务,通过标签中的优先级参数按逆序排列。```yaml` tmf.logfilter.endpoint: class: Tmf\LogFilter\Filter\EndPointFilter arguments: endpoints: - "\/endpoint" tags: - { priority: 10, name: kernel.event_listener, event: logfilter.process, method: onProcess }

    tmf.logfilter.requestabuse: class: Tmf\LogFilter\Filter\RequestAbuseFilter arguments: window: 5 maxHits: 3 eventDispatcher: @event_dispatcher tags: - { priority: 9, name: kernel.event_listener, event: logfilter.process, method: onProcess } - { name: kernel.event_listener, event: logfilter.report, method: onReport } - { name: kernel.event_listener, event: logfilter.ban_host, method: onBanHost }

    tmf.logfilter.getparameter: class: Tmf\LogFilter\Filter\GetParameterCounter arguments: getParameter: "param" tags: - { priority: 8, name: kernel.event_listener, event: logfilter.process, method: onProcess } - { name: kernel.event_listener, event: logfilter.report, method: onReport } - { name: kernel.event_listener, event: logfilter.ban_host, method: onBanHost }

  2. 运行logfilter

    ./bin/logfilter -c config.yml access.log

扩展

您可以将自己的过滤器(如UserAgent过滤器或数据中心IP-Block过滤器)连接进来。每当分发“logfilter.process”或“logfilter.ban_host”事件时,事件监听器将接收到LogEntriesEvent事件。LogEntriesEvent可以有一个或多个LogEntry对象(多个:当日志条目被阻止时)

待办事项

  • 使用控制台输出报告
  • 清理