/// <summary> /// Create a new Asavie API logger using the default logging delegates. /// </summary> /// <param name="AsavieAPIClient">An Asavie API client.</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 AsavieAPIClientLogger(AsavieAPIClient AsavieAPIClient, String Context = DefaultContext, LogfileCreatorDelegate LogFileCreator = null) : this(AsavieAPIClient, Context.IsNotNullOrEmpty() ? Context : DefaultContext, null, null, null, null, LogFileCreator : LogFileCreator) { }
/// <summary> /// Create a Asavie API HTTP logger using the given logging delegates. /// </summary> /// <param name="AsavieAPIClient">An Asavie API client.</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 client sent events source.</param> /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client 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 client sent events source.</param> /// /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param> public AsavieAPIClientLogger(AsavieAPIClient AsavieAPIClient, 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(AsavieAPIClient, 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.AsavieAPIClient = AsavieAPIClient ?? throw new ArgumentNullException(nameof(AsavieAPIClient), "The given Asavie API client must not be null!"); #endregion #region NewAuthToken RegisterEvent("NewAuthTokenRequest", handler => AsavieAPIClient.OnNewAuthTokenRequest += handler, handler => AsavieAPIClient.OnNewAuthTokenRequest -= handler, "NewAuthToken", "Requests", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); RegisterEvent("NewAuthTokenResponse", handler => AsavieAPIClient.OnNewAuthTokenResponse += handler, handler => AsavieAPIClient.OnNewAuthTokenResponse -= handler, "NewAuthToken", "Responses", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); #endregion #region SIMHardware RegisterEvent("SetSIMHardwareStateRequest", handler => AsavieAPIClient.OnSetSIMHardwareStateRequest += handler, handler => AsavieAPIClient.OnSetSIMHardwareStateRequest -= handler, "SetSIMHardwareState", "SIMHardware", "Requests", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); RegisterEvent("SetSIMHardwareStateResponse", handler => AsavieAPIClient.OnSetSIMHardwareStateResponse += handler, handler => AsavieAPIClient.OnSetSIMHardwareStateResponse -= handler, "SetSIMHardwareState", "SIMHardware", "Responses", "All"). RegisterDefaultConsoleLogTarget(this). RegisterDefaultDiscLogTarget(this); #endregion }