Developers Program

Sample Code for Exception based logging with .NET SDK using C#

Published: August 19 2014, 9:33:00 AM·Updated: July 29 2022, 10:42:32 AM

Products

Question

Exception based logging with .NET SDK

Answer

Summary

With .NET SDK, you can do logging conditionally. You can log the SOAP request and response based on API Error Codes, SDK Exceptions and / or Http Status codes.


Detailed Description

Here is an example of how to set exception based logging.
/*
© 2007-2014 eBay Inc., All Rights Reserved
Licensed under CDDL 1.0 - http://opensource.org/licenses/cddl1.php
*/

//Create the API context object
ApiContext context = new ApiContext();

//Set the Credentials
context.ApiCredential.ApiAccount.Developer = 'devID';
context.ApiCredential.ApiAccount.Application = 'appID';
context.ApiCredential.ApiAccount.Certificate = 'certID';
context.ApiCredential.eBayToken = 'token';

//Set the URL
context.SoapApiServerUrl = 'https://api.sandbox.ebay.com/wsapi';

//Set the version
context.Version = '485';

//API Error codes for logging
StringCollection errorCodes = new StringCollection();
errorCodes.Add('10007'); // Internal error to the application
errorCodes.Add('931'); // Invalid Token Error

//Http Status Codes for logging

Int32Collection httpCodes = new Int32Collection();

httpCodes.Add(404);

httpCodes.Add(502);

httpCodes.Add(500);

//Trigger Exceptions for logging

TypeCollection exceptions = new TypeCollection();

exceptions.Add(typeof(System.Net.ProtocolViolationException));

exceptions.Add(typeof(System.InvalidOperationException));


//Create the Exception Filter

ExceptionFilter exFilter = new ExceptionFilter();

exFilter.TriggerErrorCodes = errorCodes;

exFilter.TriggerExceptions = exceptions;

exFilter.TriggerHttpStatusCodes = httpCodes;

// Set logging
Context.ApiLogManager = newApiLogManager();
context.ApiLogManager.ApiLoggerList.Add(new eBay.Service.Util.FileLogger('Messages.log', true, true, true));
context.ApiLogManager.EnableLogging = true;

//Set the filter to log messages only for specified errors / exceptions
context.ApiLogManager.MessageLoggingFilter = exFilter;


Additional Resources
How well did this answer your question?