首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将日志过滤器添加到WebBroker应用程序?

如何将日志过滤器添加到WebBroker应用程序?
EN

Stack Overflow用户
提问于 2012-03-23 21:07:20
回答 1查看 363关注 0票数 2

我在Delphi6中有一个使用WebBroker的ISAPI应用程序。我需要在每个操作的开始和结尾添加日志记录信息。

我尝试过OnBeforeDispatch和OnAfterDispatch,但有些操作将响应直接发送到浏览器,并且OnAfterDispatch事件从未触发。

有没有一种方法可以在不向每个操作添加代码的情况下添加过滤器或其他东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-23 23:37:13

可以这样做的一种方法是只有一个操作。将路径设置为"/“,并将action设置为默认处理程序。然后:

  1. 记录操作的开始
  2. 从URL调用指定的相应内部处理程序
  3. 记录操作的结束

我总是做一个动作处理引擎,所有动作都注册了。然后,代码如下所示

代码语言:javascript
复制
procedure TwmWebModule.wmWebModuleActionHandlerAction(Sender: TObject;
                                                      Request: TWebRequest;
                                                      Response: TWebResponse;
                                                      var Handled: Boolean);
var
  HandlerID: string;
begin
  HandlerID := StringReplace(string(Request.InternalPathInfo), '/', '', []);
  FHandlerEngine.ExecuteHandler(HandlerID, Request, Response);
end;

现在只需添加日志:)这还有其他好处。然后,每个处理程序都在自己的单元中,您实现了一种MVC方法。代码更整洁,更易于维护。

骨架如下所示:

代码语言:javascript
复制
  TCustomHandler = class
  private
    FHandlerID: string;
    FHandlerSettings: ISimpleStorage;
  protected
    procedure Execute(const Request: TWebRequest; const Response: TWebResponse); virtual; abstract;
  public
    constructor Create(const ID: string);
    property HandlerID: string read FHandlerID;
    property HandlerSettings: ISimpleStorage read FHandlerSettings;
  end;

  THandlerEngine = class
  private
    FHandlersList: TObjectList;
    FRegisteredHandlers: THashTable;
  protected
  public
    constructor Create;
    destructor Destroy; override;
    procedure RegisterHandlers;
    procedure AddSingleHandler(const ID: string; const Handler: TCustomHandler);
    procedure ExecuteHandler(const ID: string; const Request: TWebRequest; const Response: TWebResponse);
  end;

你应该能够从这一切中理解原理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9839752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档