Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:39

0001 /*
0002  * Copyright (c) 2019 Opticks Team. All Rights Reserved.
0003  *
0004  * This file is part of Opticks
0005  * (see https://bitbucket.org/simoncblyth/opticks).
0006  *
0007  * Licensed under the Apache License, Version 2.0 (the "License"); 
0008  * you may not use this file except in compliance with the License.  
0009  * You may obtain a copy of the License at
0010  *
0011  *   http://www.apache.org/licenses/LICENSE-2.0
0012  *
0013  * Unless required by applicable law or agreed to in writing, software 
0014  * distributed under the License is distributed on an "AS IS" BASIS, 
0015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
0016  * See the License for the specific language governing permissions and 
0017  * limitations under the License.
0018  */
0019 
0020 //#include <plog/Log.h>
0021 #include <plog/Init.h>
0022 #include <plog/Appenders/RollingFileAppender.h>
0023 #include <plog/Appenders/ColorConsoleAppender.h>
0024 #include <plog/Appenders/ConsoleAppender.h>
0025 
0026 #include <plog/Formatters/FuncMessageFormatter.h>
0027 #include <plog/Formatters/MessageOnlyFormatter.h>
0028 #include <plog/Formatters/TxtFormatter.h>
0029 #include <plog/Formatters/CsvFormatter.h>
0030 
0031 //typedef plog::FuncMessageFormatter FMT ;     // useful to avoid dates and pids when comparing logs
0032 //typedef plog::MessageOnlyFormatter FMT ;   // really minimal 
0033 typedef plog::TxtFormatter         FMT ;   // default full format 
0034 //typedef plog::CsvFormatter         FMT ;   // semicolon delimited full format  
0035 
0036 #include "PlainFormatter.hh"
0037 
0038 /**
0039 
0040 SLOG\_INIT : logging macros
0041 ==============================
0042 
0043 
0044 SLOG\_INIT macros are used in two situations:
0045 
0046 * an executable main as a result of SLOG\_ or PLOT\_COLOR applied
0047   to the arguments
0048 
0049 * package logger 
0050 
0051 
0052 **/
0053 
0054 
0055 
0056 #define SLOG_INIT0(level, app1, app2 ) \
0057 { \
0058     plog::IAppender* appender1 = app1 ? static_cast<plog::IAppender*>(app1) : NULL ; \
0059     plog::IAppender* appender2 = app2 ? static_cast<plog::IAppender*>(app2) : NULL ; \
0060     plog::Severity severity = static_cast<plog::Severity>(level) ; \
0061     plog::init( severity ,  appender1 ); \
0062     if(appender2) \
0063         plog::get()->addAppender(appender2) ; \
0064 } \
0065 
0066 
0067 #define SLOG_INIT(level, app1, app2 ) \
0068 { \
0069     plog::IAppender* appender1 = static_cast<plog::IAppender*>(app1) ; \
0070     plog::IAppender* appender2 = static_cast<plog::IAppender*>(app2) ; \
0071     plog::Severity severity = static_cast<plog::Severity>(level) ; \
0072     plog::init( severity ,  appender1 ); \
0073     if(appender2) \
0074         plog::get()->addAppender(appender2) ; \
0075 } \
0076 
0077 
0078 
0079 #define SLOG_INIT_(level, app1, app2, IDX ) \
0080 { \
0081     plog::IAppender* appender1 = static_cast<plog::IAppender*>(app1) ; \
0082     plog::IAppender* appender2 = static_cast<plog::IAppender*>(app2) ; \
0083     plog::Severity severity = static_cast<plog::Severity>(level) ; \
0084     plog::init<IDX>( severity ,  appender1 ); \
0085     if(appender2) \
0086         plog::get<IDX>()->addAppender(appender2) ; \
0087 } \
0088 
0089 
0090 
0091 
0092 
0093 
0094 
0095 #define SLOG_ECOLOR(name) \
0096 { \
0097     SLOG* _plog = new SLOG(name); \
0098     static plog::RollingFileAppender<FMT> fileAppender( _plog->filename, _plog->maxFileSize, _plog->maxFiles ); \
0099     static plog::ColorConsoleAppender<FMT> consoleAppender; \
0100     SLOG_INIT( _plog->level, &consoleAppender, &fileAppender ); \
0101 } \
0102 
0103 #define SLOG_COLOR(argc, argv) \
0104 { \
0105     SLOG* _plog = new SLOG(argc, argv); \
0106     static plog::RollingFileAppender<FMT> fileAppender( _plog->filename, _plog->maxFileSize, _plog->maxFiles ); \
0107     static plog::ColorConsoleAppender<FMT> consoleAppender; \
0108     SLOG_INIT( _plog->level, &consoleAppender, &fileAppender ); \
0109 } \
0110 
0111 #define SLOG_(argc, argv) \
0112 { \
0113     SLOG* _plog = new SLOG(argc, argv); \
0114     static plog::RollingFileAppender<FMT> fileAppender( _plog->filename, _plog->maxFileSize, _plog->maxFiles ); \
0115     static plog::ConsoleAppender<FMT> consoleAppender; \
0116     SLOG_INIT( _plog->level,  &consoleAppender, &fileAppender ); \
0117 } \
0118 
0119 
0120 
0121 #define SLOG_CHECK(msg) \
0122 { \
0123     LOG(fatal) << msg  ; \
0124     LOG(error) << msg  ; \
0125     LOG(warning) << msg  ; \
0126     LOG(info) << msg  ; \
0127     LOG(debug) << msg  ; \
0128     LOG(verbose) << msg  ; \
0129     LOG(verbose) << msg  ; \
0130 } \
0131 
0132 
0133 
0134 
0135