SBinetLogger.cpp
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:6k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. /*****************************************************************************
  2.  *****************************************************************************
  3.  *
  4.  * SBinetLogger - logging class for SBinet
  5.  *
  6.  * This provides logging definitions for SBinet use of VXIlog, along
  7.  * with some convenience macros.
  8.  *
  9.  *****************************************************************************
  10.  ****************************************************************************/
  11. /****************License************************************************
  12.  * Vocalocity OpenVXI
  13.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  14.  * This program is free software; you can redistribute it and/or
  15.  * modify it under the terms of the GNU General Public License
  16.  * as published by the Free Software Foundation; either version 2
  17.  * of the License, or (at your option) any later version.
  18.  *  
  19.  * This program is distributed in the hope that it will be useful,
  20.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  21.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  22.  * GNU General Public License for more details.
  23.  *
  24.  * You should have received a copy of the GNU General Public License
  25.  * along with this program; if not, write to the Free Software
  26.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  27.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  28.  * registered trademarks of Vocalocity, Inc. 
  29.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  30.  * by Vocalocity.
  31.  ***********************************************************************/
  32. // -----1=0-------2=0-------3=0-------4=0-------5=0-------6=0-------7=0-------8
  33. #include "SBinetInternal.h"
  34. #include "SBinetLogger.hpp"                // For this class
  35. // -----1=0-------2=0-------3=0-------4=0-------5=0-------6=0-------7=0-------8
  36. // Determine if a tag is enabled
  37. VXIbool SBinetLogger::DiagIsEnabled (VXIunsigned tagID) const
  38. {
  39.   return (*_log->DiagnosticIsEnabled)(_log, _diagTagBase + tagID);
  40. }
  41. // Error logging
  42. VXIlogResult
  43. SBinetLogger::Error (VXIunsigned errorID, const VXIchar *format, ...) const
  44. {
  45.   va_list arguments;
  46.   if ( ! _log )
  47.     return VXIlog_RESULT_FAILURE;
  48.   
  49.   VXIlogResult rc;
  50.   if ( format ) {
  51.     va_start(arguments, format);
  52.     rc = (*_log->VError)(_log, _moduleName.c_str( ), errorID, format, 
  53.  arguments);
  54.     va_end(arguments);
  55.   } else {
  56.     rc = (*_log->Error)(_log, _moduleName.c_str( ), errorID, NULL);
  57.   }
  58.   return rc;
  59. }
  60. // Error logging
  61. VXIlogResult
  62. SBinetLogger::Error (VXIlogInterface *log, VXIunsigned errorID, 
  63.      const VXIchar *format, ...) const
  64. {
  65.   va_list arguments;
  66.   if ( ! log )
  67.     return VXIlog_RESULT_FAILURE;
  68.   
  69.   VXIlogResult rc;
  70.   if ( format ) {
  71.     va_start(arguments, format);
  72.     rc = (*log->VError)(log, _moduleName.c_str( ), errorID, format, arguments);
  73.     va_end(arguments);
  74.   } else {
  75.     rc = (*log->Error)(log, _moduleName.c_str( ), errorID, NULL);
  76.   }
  77.   return rc;
  78. }
  79. // Error logging, static
  80. VXIlogResult
  81. SBinetLogger::Error (VXIlogInterface *log, const VXIchar *moduleName,
  82.      VXIunsigned errorID, const VXIchar *format, ...)
  83. {
  84.   va_list arguments;
  85.   if ( ! log )
  86.     return VXIlog_RESULT_FAILURE;
  87.   
  88.   VXIlogResult rc;
  89.   if ( format ) {
  90.     va_start(arguments, format);
  91.     rc = (*log->VError)(log, moduleName, errorID, format, arguments);
  92.     va_end(arguments);
  93.   } else {
  94.     rc = (*log->Error)(log, moduleName, errorID, NULL);
  95.   }
  96.   return rc;
  97. }
  98. // Diagnostic logging
  99. VXIlogResult 
  100. SBinetLogger::Diag (VXIunsigned tag, const VXIchar *subtag, 
  101.    const VXIchar *format, ...) const
  102. {
  103.   va_list arguments;
  104.   if ( ! _log )
  105.     return VXIlog_RESULT_FAILURE;
  106.   VXIlogResult rc;
  107.   if ( format ) {
  108.     va_start(arguments, format);
  109.     rc = (*_log->VDiagnostic)(_log, tag + _diagTagBase, subtag, format, 
  110.       arguments);
  111.     va_end(arguments);
  112.   } else {
  113.     rc = (*_log->Diagnostic)(_log, tag + _diagTagBase, subtag, NULL);
  114.   }
  115.   return rc;
  116. }
  117. // Diagnostic logging
  118. VXIlogResult 
  119. SBinetLogger::Diag (VXIlogInterface *log, VXIunsigned tag, 
  120.     const VXIchar *subtag, const VXIchar *format, ...) const
  121. {
  122.   va_list arguments;
  123.   if ( ! log )
  124.     return VXIlog_RESULT_FAILURE;
  125.   VXIlogResult rc;
  126.   if ( format ) {
  127.     va_start(arguments, format);
  128.     rc = (*log->VDiagnostic)(log, tag + _diagTagBase, subtag, format, 
  129.      arguments);
  130.     va_end(arguments);
  131.   } else {
  132.     rc = (*log->Diagnostic)(log, tag + _diagTagBase, subtag, NULL);
  133.   }
  134.   return rc;
  135. }
  136. // Diagnostic logging, static
  137. VXIlogResult 
  138. SBinetLogger::Diag (VXIlogInterface *log, VXIunsigned diagTagBase,
  139.     VXIunsigned tag, const VXIchar *subtag, 
  140.     const VXIchar *format, ...)
  141. {
  142.   va_list arguments;
  143.   if ( ! log )
  144.     return VXIlog_RESULT_FAILURE;
  145.   VXIlogResult rc;
  146.   if ( format ) {
  147.     va_start(arguments, format);
  148.     rc = (*log->VDiagnostic)(log, tag + diagTagBase, subtag, format, 
  149.      arguments);
  150.     va_end(arguments);
  151.   } else {
  152.     rc = (*log->Diagnostic)(log, tag + diagTagBase, subtag, NULL);
  153.   }
  154.   return rc;
  155. }
  156. // Diagnostic logging, va args
  157. VXIlogResult 
  158. SBinetLogger::VDiag (VXIunsigned tag, const VXIchar *subtag, 
  159.      const VXIchar *format, va_list args) const
  160. {
  161.   if ( ! _log )
  162.     return VXIlog_RESULT_FAILURE;
  163.   VXIlogResult rc;
  164.   if ( format ) {
  165.     rc = (*_log->VDiagnostic)(_log, tag + _diagTagBase, subtag, format, args);
  166.   } else {
  167.     rc = (*_log->Diagnostic)(_log, tag + _diagTagBase, subtag, NULL);
  168.   }
  169.   return rc;
  170. }