📄 log.cc
字号:
//// Copyright (c) 2003 by Istv醤 V醨adi//// This file is part of dxr3Player, a DVD player written specifically // for the DXR3 (aka Hollywood+) decoder card.// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//------------------------------------------------------------------------------#include "Log.h"#include "Config.h"#include <cstdio>#include <ctime>//------------------------------------------------------------------------------Log::Logger::Logger() : logFile((Config::get().logFileName==0) ? 0 : fopen(Config::get().logFileName, "wt")), isVerbose(Config::get().verboseLogging), lastType(NORMAL){ }//------------------------------------------------------------------------------Log::Logger::~Logger(){ if (logFile!=0) fclose(reinterpret_cast<FILE*>(logFile));}//------------------------------------------------------------------------------inline bool Log::Logger::shouldLog(type_t type){ return type!=VERBOSE_DEBUG || isVerbose;}//------------------------------------------------------------------------------void Log::Logger::log(type_t type, const char* format, std::va_list& ap){ lastType = type; if (!shouldLog(type)) return; time_t t; time(&t); char tbuf[32]; strftime(tbuf, sizeof(tbuf), "%H:%M:%S", localtime(&t)); fprintf(stderr, "%s: ", tbuf); vfprintf(stderr, format, ap); if (logFile!=0) { fprintf(reinterpret_cast<FILE*>(logFile), "%s: ", tbuf); vfprintf(reinterpret_cast<FILE*>(logFile), format, ap); }};//------------------------------------------------------------------------------void Log::Logger::cont(const char* format, std::va_list& ap){ if (!shouldLog(lastType)) return; vfprintf(stderr, format, ap); if (logFile!=0) { vfprintf(reinterpret_cast<FILE*>(logFile), format, ap); }}//------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -