LogRecord API

LogRecord stores two types of logs.

SUP101DB.GetLogger – gets the log API. The client can write its own records using the log API. For example:
ILogger logger = SUP101DB.GetLogger();
    logger.Debug("Write this string to the log records table");
    SUP101DB.SubmitLogRecords();
SUP101DB.GetLogRecords – gets the log records received from the server. For example:
Query query = new Query();
query.TestCriteria = Sybase.Persistence.AttributeTest.Equal("component", "Customer");
Sybase.Persistence.SortCriteria sortCriteria = new Sybase.Persistence.SortCriteria();         
sortCriteria.Add("requestId", Sybase.Persistence.SortOrder.DESCENDING);           
query.SortCriteria = sortCriteria;

GenericList<ILogRecord> loglist = SUP101DB.GetLogRecords(query);

This sample code shows how to find the corresponding MBO with the LogRecord and to delete the log record when a record is processed.

private void processLogRecords()
  {
    Query query = new Query();
    GenericList<ILogRecord> logRecords = SUP101DB.GetLogRecords(query);
    bool callSync = false;
    foreach (ILogRecord log in logRecords)
    {
      // log warning message
      BenchmarkUtils.AddInfo("log " + log.Component + ":" 
        + log.EntityKey
	+ " code:" + log.Code
    	+ " msg:" + log.Message);
			
      if (log.Component.Equals("Customer"))
      {
        long surrogateKey = Convert.ToInt64(log.EntityKey);
	Customer c = Customer.Find(surrogateKey);
	if (c.IsPending)
	{
	  c.CancelPending();
	}
				
	log.Delete();
	log.SubmitPending();
	callSync = true;
      }
    }
		
      if (callSync)
      {
       SUP101DB.BeginSynchronize(null, null);
      }
  }