< prev index next >

src/jdk.jpackage/windows/native/libjpackage/Log.cpp

Print this page

        

*** 96,107 **** StderrLogAppender::StderrLogAppender() { } /*static*/ ! Logger& Logger::defaultLogger() ! { Logger* reply = reinterpret_cast<Logger*>(defaultLoggerMemory); if (!reply->appender) { // Memory leak by design. Not an issue at all as this is global // object. OS will do resources clean up anyways when application --- 96,106 ---- StderrLogAppender::StderrLogAppender() { } /*static*/ ! Logger& Logger::defaultLogger() { Logger* reply = reinterpret_cast<Logger*>(defaultLoggerMemory); if (!reply->appender) { // Memory leak by design. Not an issue at all as this is global // object. OS will do resources clean up anyways when application
*** 121,166 **** std::memcpy(moduleName, mname.c_str(), mname.size()); moduleName[mname.size()] = TCHAR(0); // if JPACKAGE_DEBUG environment variable is NOT set to "true" disable // logging. ! if (SysInfo::getEnvVariable(std::nothrow, L"JPACKAGE_DEBUG") != L"true") { reply->appender = &nopLogApender; } state = Initialized; } return *reply; } Logger::Logger(LogAppender& appender, LogLevel logLevel) ! : level(logLevel), appender(&appender) ! { } ! void Logger::setLogLevel(LogLevel logLevel) ! { level = logLevel; } ! Logger::~Logger() ! { } ! bool Logger::isLoggable(LogLevel logLevel) const ! { return logLevel >= level; } ! void Logger::log(LogLevel logLevel, LPCTSTR fileName, int lineNum, LPCTSTR funcName, const tstring& message) const ! { LogEvent logEvent; ! // [YYYY/MM/DD HH:MM:SS.ms, <module> (PID: processID, TID: threadID), fileName:lineNum (funcName)] ! // <tab>LEVEL: message GetLocalTime(&logEvent.ts); logEvent.pid = GetCurrentProcessId(); logEvent.tid = GetCurrentThreadId(); logEvent.moduleName = moduleName; --- 120,162 ---- std::memcpy(moduleName, mname.c_str(), mname.size()); moduleName[mname.size()] = TCHAR(0); // if JPACKAGE_DEBUG environment variable is NOT set to "true" disable // logging. ! if (SysInfo::getEnvVariable(std::nothrow, ! L"JPACKAGE_DEBUG") != L"true") { reply->appender = &nopLogApender; } state = Initialized; } return *reply; } Logger::Logger(LogAppender& appender, LogLevel logLevel) ! : level(logLevel), appender(&appender) { } ! void Logger::setLogLevel(LogLevel logLevel) { level = logLevel; } ! Logger::~Logger() { } ! bool Logger::isLoggable(LogLevel logLevel) const { return logLevel >= level; } ! void Logger::log(LogLevel logLevel, LPCTSTR fileName, int lineNum, ! LPCTSTR funcName, const tstring& message) const { LogEvent logEvent; ! // [YYYY/MM/DD HH:MM:SS.ms, <module> (PID: processID, TID: threadID), ! // fileName:lineNum (funcName)] <tab>LEVEL: message GetLocalTime(&logEvent.ts); logEvent.pid = GetCurrentProcessId(); logEvent.tid = GetCurrentThreadId(); logEvent.moduleName = moduleName;
*** 175,207 **** void StderrLogAppender::append(const LogEvent& v) { const tstring out = tstrings::unsafe_format(format, ! unsigned(v.ts.wYear), unsigned(v.ts.wMonth), unsigned(v.ts.wDay), // date ! unsigned(v.ts.wHour), unsigned(v.ts.wMinute), unsigned(v.ts.wSecond), unsigned(v.ts.wMilliseconds), // time v.moduleName.c_str(), v.pid, v.tid, v.fileName.c_str(), v.lineNum, v.funcName.c_str(), v.logLevel.c_str(), v.message.c_str()); std::cerr << tstrings::toUtf8(out); } // Logger::ScopeTracer ! Logger::ScopeTracer::ScopeTracer(Logger &logger, LogLevel logLevel, LPCTSTR fileName, int lineNum, LPCTSTR funcName, const tstring& scopeName) ! : log(logger), level(logLevel), file(fileName), line(lineNum), func(funcName), scope(scopeName), needLog(logger.isLoggable(logLevel)) ! { if (needLog) { ! log.log(level, file.c_str(), line, func.c_str(), tstrings::any() << "Entering " << scope); } } Logger::ScopeTracer::~ScopeTracer() { if (needLog) { // we don't know what line is end of scope at, so specify line 0 // and add note about line when the scope begins log.log(level, file.c_str(), 0, func.c_str(), ! tstrings::any() << "Exiting " << scope << " (entered at " << FileUtils::basename(file) << ":" << line << ")"); } } --- 171,208 ---- void StderrLogAppender::append(const LogEvent& v) { const tstring out = tstrings::unsafe_format(format, ! unsigned(v.ts.wYear), unsigned(v.ts.wMonth), unsigned(v.ts.wDay), ! unsigned(v.ts.wHour), unsigned(v.ts.wMinute), unsigned(v.ts.wSecond), ! unsigned(v.ts.wMilliseconds), v.moduleName.c_str(), v.pid, v.tid, v.fileName.c_str(), v.lineNum, v.funcName.c_str(), v.logLevel.c_str(), v.message.c_str()); std::cerr << tstrings::toUtf8(out); } // Logger::ScopeTracer ! Logger::ScopeTracer::ScopeTracer(Logger &logger, LogLevel logLevel, ! LPCTSTR fileName, int lineNum, LPCTSTR funcName, ! const tstring& scopeName) : log(logger), level(logLevel), ! file(fileName), line(lineNum), ! func(funcName), scope(scopeName), needLog(logger.isLoggable(logLevel)) { if (needLog) { ! log.log(level, file.c_str(), line, func.c_str(), ! tstrings::any() << "Entering " << scope); } } Logger::ScopeTracer::~ScopeTracer() { if (needLog) { // we don't know what line is end of scope at, so specify line 0 // and add note about line when the scope begins log.log(level, file.c_str(), 0, func.c_str(), ! tstrings::any() << "Exiting " << scope << " (entered at " ! << FileUtils::basename(file) << ":" << line << ")"); } }
< prev index next >