blocxx
|
00001 /******************************************************************************* 00002 * Copyright (C) 2005, Vintela, Inc. All rights reserved. 00003 * Copyright (C) 2006, Novell, Inc. All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions are met: 00007 * 00008 * * Redistributions of source code must retain the above copyright notice, 00009 * this list of conditions and the following disclaimer. 00010 * * Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * * Neither the name of 00014 * Vintela, Inc., 00015 * nor Novell, Inc., 00016 * nor the names of its contributors or employees may be used to 00017 * endorse or promote products derived from this software without 00018 * specific prior written permission. 00019 * 00020 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00021 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00022 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00023 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00024 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00025 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 00026 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00027 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00028 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00029 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00030 * POSSIBILITY OF SUCH DAMAGE. 00031 *******************************************************************************/ 00032 00033 00038 #include "blocxx/BLOCXX_config.h" 00039 #include "blocxx/CerrAppender.hpp" 00040 #include "blocxx/String.hpp" 00041 #include "blocxx/NonRecursiveMutex.hpp" 00042 #include "blocxx/NonRecursiveMutexLock.hpp" 00043 00044 #include <iostream> 00045 00046 namespace BLOCXX_NAMESPACE 00047 { 00048 00050 CerrAppender::CerrAppender(const StringArray& components, 00051 const StringArray& categories, 00052 const String& pattern) 00053 : LogAppender(components, categories, pattern) 00054 { 00055 } 00056 00058 CerrAppender::CerrAppender() 00059 : LogAppender(LogAppender::ALL_COMPONENTS, LogAppender::ALL_CATEGORIES, STR_DEFAULT_MESSAGE_PATTERN) 00060 { 00061 } 00062 00064 CerrAppender::~CerrAppender() 00065 { 00066 } 00067 00069 namespace 00070 { 00071 NonRecursiveMutex cerrGuard; 00072 } 00073 00074 void 00075 CerrAppender::doProcessLogMessage(const String& formattedMessage, const LogMessage& message) const 00076 { 00077 NonRecursiveMutexLock lock(cerrGuard); 00078 std::clog << formattedMessage << std::endl; 00079 } 00080 00082 // const char* red = "\x1b[1;31;40m"; 00083 // const char* darkRed = "\x1b[0;31;40m"; 00084 // const char* green = "\x1b[1;32;40m"; 00085 // const char* darkGreen = "\x1b[0;32;40m"; 00086 // const char* yellow = "\x1b[1;33;40m"; 00087 // const char* darkYellow = "\x1b[0;33;40m"; 00088 // const char* blue = "\x1b[1;34;40m"; 00089 // const char* darkBlue = "\x1b[0;34;40m"; 00090 // const char* purple = "\x1b[1;35;40m"; 00091 // const char* darkPurple = "\x1b[0;35;40m"; 00092 // const char* cyan = "\x1b[1;36;40m"; 00093 // const char* darkCyan = "\x1b[0;36;40m"; 00094 // const char* white = "\x1b[1;37;40m"; 00095 // const char* darkWhite = "\x1b[0;37;40m"; 00096 // const char* gray = "\x1b[0;37;40m"; 00097 // const char* resetColor = "\x1b[0;37;40m"; 00098 00099 // colorized version: const String CerrAppender::STR_DEFAULT_MESSAGE_PATTERN("\x1b[1;37;40m[\x1b[1;31;40m%-.6t\x1b[1;37;40m]\x1b[1;32;40m %m\x1b[0;37;40m"); 00100 const GlobalString CerrAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("[%-.6t] %m"); 00101 00102 00103 } // end namespace BLOCXX_NAMESPACE 00104 00105 00106