示例#1
0
文件: Log.cpp 项目: nemerle/boomerang
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();
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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();
}