• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

loggingLogSvcHandler.h

Go to the documentation of this file.
00001 #ifndef logging_log_svc_handler_H
00002 #define logging_log_svc_handler_H
00003 /*******************************************************************************
00004 * ALMA - Atacama Large Millimiter Array
00005 * (c) UNSPECIFIED - FILL IN, 2005 
00006 * 
00007 * This library is free software; you can redistribute it and/or
00008 * modify it under the terms of the GNU Lesser General Public
00009 * License as published by the Free Software Foundation; either
00010 * version 2.1 of the License, or (at your option) any later version.
00011 * 
00012 * This library is distributed in the hope that it will be useful,
00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 * Lesser General Public License for more details.
00016 * 
00017 * You should have received a copy of the GNU Lesser General Public
00018 * License along with this library; if not, write to the Free Software
00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00020 *
00021 * "@(#) $Id: loggingLogSvcHandler.h,v 1.10 2011/04/26 20:19:22 javarias Exp $"
00022 *
00023 * who       when      what
00024 * --------  --------  ----------------------------------------------
00025 * dfugate  2005-04-04  created
00026 */
00027 
00028 #ifndef __cplusplus
00029 #error This is a C++ include file and cannot be used from plain C
00030 #endif
00031 
00032 #include "loggingHandler.h"
00033 #include <stdarg.h>
00034 #include <ace/Log_Priority.h>
00035 
00036 namespace Logging {
00037     
00044     Logging::BaseLog::Priority
00045     ace2acsPriority(ACE_Log_Priority acePriority);
00046     
00054     ACE_Log_Priority
00055     acs2acePriority(Logging::BaseLog::Priority acsPriority);
00056     
00057 
00061     class LogSvcHandler : public virtual Handler
00062     {
00063       public:
00064         // --------------------------------------------------------
00071         LogSvcHandler(const std::string& soName);
00072 
00076         virtual void
00077         log(const LogRecord&);
00078 
00082         virtual std::string
00083         getName() const;
00084 
00088         virtual void
00089         setLevels(Priority remotePriority, Priority localPriority, int type);
00090         
00091 
00092     //---------------------------------------------
00093         //--The following section exists solely to remain
00094         //--backwards compatible with the ACS 4.0 and earlier
00095         //--logging systems. This is provided so that formatted
00096         //--(i.e., printf, scanf, etc) messages are supported.
00097         //--At some point in time this should
00098         //--be removed!
00099         //---------------------------------------------
00100 
00105         struct DeprecatedLogInfo 
00106         {
00107             Priority priority;
00108             std::string message;
00109         };
00110 
00115         static const int MAX_MESSAGE_SIZE = 1000;
00116         
00129         static DeprecatedLogInfo
00130         unformatted2formatted(ACE_Log_Priority messagePriority,
00131                               const char *fmt,
00132                               ...) 
00133 #if defined(__GNUC__)
00134         __attribute__ ((format (printf, 2, 3)))
00135 #endif
00136         ;
00137         
00138       private:
00142         std::string sourceObjectName_m;
00143     };
00144 
00145 };
00146 
00147 
00148 #endif 

Generated on Thu Jan 12 2012 23:13:51 for ACS-10.0 C++ API by  doxygen 1.7.0