1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ipc/chromium/src/base/logging.cc Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,105 @@ 1.4 +// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1.5 +// Use of this source code is governed by a BSD-style license that can be 1.6 +// found in the LICENSE file. 1.7 + 1.8 +#include "base/logging.h" 1.9 +#include "prmem.h" 1.10 +#include "prprf.h" 1.11 +#include "base/string_util.h" 1.12 +#include "nsXPCOM.h" 1.13 + 1.14 +namespace mozilla { 1.15 + 1.16 +Logger::~Logger() 1.17 +{ 1.18 + PRLogModuleLevel prlevel = PR_LOG_DEBUG; 1.19 + int xpcomlevel = -1; 1.20 + 1.21 + switch (mSeverity) { 1.22 + case LOG_INFO: 1.23 + prlevel = PR_LOG_DEBUG; 1.24 + xpcomlevel = -1; 1.25 + break; 1.26 + 1.27 + case LOG_WARNING: 1.28 + prlevel = PR_LOG_WARNING; 1.29 + xpcomlevel = NS_DEBUG_WARNING; 1.30 + break; 1.31 + 1.32 + case LOG_ERROR: 1.33 + prlevel = PR_LOG_ERROR; 1.34 + xpcomlevel = NS_DEBUG_WARNING; 1.35 + break; 1.36 + 1.37 + case LOG_ERROR_REPORT: 1.38 + prlevel = PR_LOG_ERROR; 1.39 + xpcomlevel = NS_DEBUG_ASSERTION; 1.40 + break; 1.41 + 1.42 + case LOG_FATAL: 1.43 + prlevel = PR_LOG_ERROR; 1.44 + xpcomlevel = NS_DEBUG_ABORT; 1.45 + break; 1.46 + } 1.47 + 1.48 + PR_LOG(GetLog(), prlevel, ("%s:%i: %s", mFile, mLine, mMsg ? mMsg : "<no message>")); 1.49 + if (xpcomlevel != -1) 1.50 + NS_DebugBreak(xpcomlevel, mMsg, NULL, mFile, mLine); 1.51 + 1.52 + PR_Free(mMsg); 1.53 +} 1.54 + 1.55 +void 1.56 +Logger::printf(const char* fmt, ...) 1.57 +{ 1.58 + va_list args; 1.59 + va_start(args, fmt); 1.60 + mMsg = PR_vsprintf_append(mMsg, fmt, args); 1.61 + va_end(args); 1.62 +} 1.63 + 1.64 +PRLogModuleInfo* Logger::gChromiumPRLog; 1.65 + 1.66 +PRLogModuleInfo* Logger::GetLog() 1.67 +{ 1.68 + if (!gChromiumPRLog) 1.69 + gChromiumPRLog = PR_NewLogModule("chromium"); 1.70 + return gChromiumPRLog; 1.71 +} 1.72 + 1.73 +} // namespace mozilla 1.74 + 1.75 +mozilla::Logger& 1.76 +operator<<(mozilla::Logger& log, const char* s) 1.77 +{ 1.78 + log.printf("%s", s); 1.79 + return log; 1.80 +} 1.81 + 1.82 +mozilla::Logger& 1.83 +operator<<(mozilla::Logger& log, const std::string& s) 1.84 +{ 1.85 + log.printf("%s", s.c_str()); 1.86 + return log; 1.87 +} 1.88 + 1.89 +mozilla::Logger& 1.90 +operator<<(mozilla::Logger& log, int i) 1.91 +{ 1.92 + log.printf("%i", i); 1.93 + return log; 1.94 +} 1.95 + 1.96 +mozilla::Logger& 1.97 +operator<<(mozilla::Logger& log, const std::wstring& s) 1.98 +{ 1.99 + log.printf("%s", WideToASCII(s).c_str()); 1.100 + return log; 1.101 +} 1.102 + 1.103 +mozilla::Logger& 1.104 +operator<<(mozilla::Logger& log, void* p) 1.105 +{ 1.106 + log.printf("%p", p); 1.107 + return log; 1.108 +}