void Log::addDefaultLogSinks(const QString &outputDir) { addLogSink(std::make_unique<ConsoleLogSink>()); QFileInfo fi(QDir(outputDir), "boomerang.log"); addLogSink(std::make_unique<FileLogSink>(fi.absoluteFilePath())); writeLogHeader(); }
void Logger::vWriteFormatLog(LogSeverity severity, uint32 nCategory, const XCHAR *format, va_list ap) { if (!isValid(format) || !m_logGuard.isAllow(severity, nCategory)) { return; } size_t nLen = writeLogHeader(severity, nCategory); _vsntprintf(m_buffer + nLen, m_maxMessageSize - nLen, format, ap); onLogging(severity, nCategory, m_buffer); }
void Logger::writeLog(LogSeverity severity, uint32 nCategory, const XCHAR * message) { if (!isValid(message) || !m_logGuard.isAllow(severity, nCategory)) { return; } size_t nLen = writeLogHeader(severity, nCategory); _sntprintf(m_buffer + nLen, m_maxMessageSize - nLen, _PERCENT_S , message); onLogging(severity, nCategory, m_buffer); }
void Log2File::openFile(const std::tr2::sys::path& fileName) { if (logfile.is_open() && this->filename == fileName) return; this->filename = fileName; std::error_code ec; if (!std::tr2::sys::exists(filename, ec)) std::tr2::sys::create_directories(filename.parent_path(), ec); logfile.open(filename, std::ios::app); writeLogHeader(); }