From b59b05011655e8c24b97551c7e790a85d0a4b8e1 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Tue, 20 Oct 2015 15:40:42 +0200 Subject: [PATCH] log: add private attribute to set header of logs only once Fix #255 --- src/AvTranscoder/log.cpp | 22 ++++++++++++---------- src/AvTranscoder/log.hpp | 3 +++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/AvTranscoder/log.cpp b/src/AvTranscoder/log.cpp index 8327f24b..58c32702 100644 --- a/src/AvTranscoder/log.cpp +++ b/src/AvTranscoder/log.cpp @@ -3,6 +3,8 @@ namespace avtranscoder { +std::string Logger::logHeaderMessage = ""; + void callbackToWriteInFile( void *ptr, int level, const char *fmt, va_list vl ) { std::ofstream outputFile; @@ -23,13 +25,10 @@ void callbackToWriteInFile( void *ptr, int level, const char *fmt, va_list vl ) void Logger::setLogLevel( const int level ) { + // set ffmpeg log level av_log_set_level( level ); -} - -void Logger::log( const int level, const std::string& msg ) -{ - std::string avTranscoderMsg( "[avTranscoder - " ); + // set avtranscoder header message std::string levelStr; switch( level ) { @@ -48,12 +47,15 @@ void Logger::log( const int level, const std::string& msg ) default: break; } + Logger::logHeaderMessage = "[avTranscoder - " + levelStr + "] "; +} - avTranscoderMsg += levelStr; - avTranscoderMsg += "] "; - avTranscoderMsg += msg; - avTranscoderMsg += "\n"; - av_log( NULL, level, avTranscoderMsg.c_str() ); +void Logger::log( const int level, const std::string& msg ) +{ + std::string logMessage = Logger::logHeaderMessage; + logMessage += msg; + logMessage += "\n"; + av_log( NULL, level, logMessage.c_str() ); } void Logger::logInFile() diff --git a/src/AvTranscoder/log.hpp b/src/AvTranscoder/log.hpp index d25067c9..e1102479 100644 --- a/src/AvTranscoder/log.hpp +++ b/src/AvTranscoder/log.hpp @@ -44,6 +44,9 @@ class AvExport Logger * @note log filename is avtranscoder.log */ static void logInFile(); + +private: + static std::string logHeaderMessage; ///< First caracters present for each logging message }; }