• 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.12 2012/02/29 12:50:09 tstaig 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 "loggingExport.h"
00034 #include <stdarg.h>
00035 #include <ace/Log_Priority.h>
00036 
00037 namespace Logging {
00038     
00045     Logging::BaseLog::Priority
00046     ace2acsPriority(ACE_Log_Priority acePriority);
00047     
00055     ACE_Log_Priority
00056     acs2acePriority(Logging::BaseLog::Priority acsPriority);
00057     
00058 
00062     class logging_EXPORT LogSvcHandler : public virtual Handler
00063     {
00064       public:
00065         // --------------------------------------------------------
00072         LogSvcHandler(const std::string& soName);
00073 
00077         virtual void
00078         log(const LogRecord&);
00079 
00083         virtual std::string
00084         getName() const;
00085 
00089         virtual void
00090         setLevels(Priority remotePriority, Priority localPriority, int type);
00091         
00092 
00093     //---------------------------------------------
00094         //--The following section exists solely to remain
00095         //--backwards compatible with the ACS 4.0 and earlier
00096         //--logging systems. This is provided so that formatted
00097         //--(i.e., printf, scanf, etc) messages are supported.
00098         //--At some point in time this should
00099         //--be removed!
00100         //---------------------------------------------
00101 
00106         struct DeprecatedLogInfo 
00107         {
00108             Priority priority;
00109             std::string message;
00110         };
00111 
00116         static const int MAX_MESSAGE_SIZE = 1000;
00117         
00130         static DeprecatedLogInfo
00131         unformatted2formatted(ACE_Log_Priority messagePriority,
00132                               const char *fmt,
00133                               ...) 
00134 #if defined(__GNUC__)
00135         __attribute__ ((format (printf, 2, 3)))
00136 #endif
00137         ;
00138         
00139       private:
00143         std::string sourceObjectName_m;
00144     };
00145 
00146 };
00147 
00148 
00149 #endif 

Generated on Mon May 4 2015 08:27:43 for ACS-2015.4 C++ API by  doxygen 1.7.0