/// <summary> /// Create a new OICP EMP server logger using the default logging delegates. /// </summary> /// <param name="EMPServer">A OICP EMP server.</param> /// <param name="Context">A context of this API.</param> /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param> public EMPServerLogger(EMPSOAPServer EMPServer, String Context = DefaultContext, LogfileCreatorDelegate LogfileCreator = null) : this(EMPServer, Context.IsNotNullOrEmpty() ? Context : DefaultContext, null, null, null, null, LogfileCreator : LogfileCreator) { }
/// <summary> /// Create a new OICP EMP server logger using the given logging delegates. /// </summary> /// <param name="EMPServer">A OICP EMP server.</param> /// <param name="Context">A context of this API.</param> /// /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param> /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param> /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param> /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param> /// /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param> /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param> /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param> /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param> /// /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param> /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param> /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param> /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param> /// /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param> public EMPServerLogger(EMPSOAPServer EMPServer, String Context, HTTPRequestLoggerDelegate LogHTTPRequest_toConsole, HTTPResponseLoggerDelegate LogHTTPResponse_toConsole, HTTPRequestLoggerDelegate LogHTTPRequest_toDisc, HTTPResponseLoggerDelegate LogHTTPResponse_toDisc, HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork = null, HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null, HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE = null, HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null, HTTPResponseLoggerDelegate LogHTTPError_toConsole = null, HTTPResponseLoggerDelegate LogHTTPError_toDisc = null, HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null, HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null, LogfileCreatorDelegate LogfileCreator = null) : base(EMPServer?.SOAPServer.HTTPServer, Context.IsNotNullOrEmpty() ? Context : DefaultContext, LogHTTPRequest_toConsole, LogHTTPResponse_toConsole, LogHTTPRequest_toDisc, LogHTTPResponse_toDisc, LogHTTPRequest_toNetwork, LogHTTPResponse_toNetwork, LogHTTPRequest_toHTTPSSE, LogHTTPResponse_toHTTPSSE, LogHTTPError_toConsole, LogHTTPError_toDisc, LogHTTPError_toNetwork, LogHTTPError_toHTTPSSE, LogfileCreator) { #region Initial checks this.EMPServer = EMPServer ?? throw new ArgumentNullException(nameof(EMPServer), "The given EMP server must not be null!"); #endregion #region Register log events // AuthorizeStart/-Stop RegisterEvent("AuthorizeStartRequest", handler => EMPServer.OnAuthorizeStartSOAPRequest += handler, handler => EMPServer.OnAuthorizeStartSOAPRequest -= handler, "AuthorizeStart", "Authorize", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); RegisterEvent("AuthorizeStartResponse", handler => EMPServer.OnAuthorizeStartSOAPResponse += handler, handler => EMPServer.OnAuthorizeStartSOAPResponse -= handler, "AuthorizeStart", "Authorize", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); RegisterEvent("AuthorizeStopRequest", handler => EMPServer.OnAuthorizeStopSOAPRequest += handler, handler => EMPServer.OnAuthorizeStopSOAPRequest -= handler, "AuthorizeStop", "Authorize", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); RegisterEvent("AuthorizeStopResponse", handler => EMPServer.OnAuthorizeStopSOAPResponse += handler, handler => EMPServer.OnAuthorizeStopSOAPResponse -= handler, "AuthorizeStop", "Authorize", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); // ChargeDetailRecord RegisterEvent("ChargeDetailRecordRequest", handler => EMPServer.OnChargeDetailRecordSOAPRequest += handler, handler => EMPServer.OnChargeDetailRecordSOAPRequest -= handler, "ChargeDetailRecord", "CDR", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); RegisterEvent("ChargeDetailRecordResponse", handler => EMPServer.OnChargeDetailRecordSOAPResponse += handler, handler => EMPServer.OnChargeDetailRecordSOAPResponse -= handler, "ChargeDetailRecord", "CDR", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); #endregion }