vdr-plugin-softhddevice-drm-gles 1.6.4-d0291bb
logger.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-or-later
2
12#ifndef __LOGGER_H
13#define __LOGGER_H
14
15#include <atomic>
16#include <cstdarg>
17#include <memory>
18
30#define AV_LOGLEVEL AV_LOG_INFO
31
32/********************************************************************************
33 * Logger macros
34 *******************************************************************************/
35
37#define LOGFATAL cSoftHdLogger::GetLogger()->LogFatal
39#define LOGERROR cSoftHdLogger::GetLogger()->LogError
41#define LOGWARNING cSoftHdLogger::GetLogger()->LogWarning
43#define LOGINFO cSoftHdLogger::GetLogger()->LogInfo
45#define LOGDEBUG cSoftHdLogger::GetLogger()->LogDebug
47#define LOGDEBUG2 cSoftHdLogger::GetLogger()->LogDebug2
48
56 L_DEBUG = (1 << 0),
57 L_AV_SYNC = (1 << 1),
58 L_SOUND = (1 << 2),
59 L_OSD = (1 << 3),
60 L_DRM = (1 << 4),
61 L_CODEC = (1 << 5),
62 L_STILL = (1 << 6),
63 L_TRICK = (1 << 7),
64 L_MEDIA = (1 << 8),
65 L_OPENGL = (1 << 9),
66 L_OPENGL_TIME = (1 << 10),
67 L_OPENGL_TIME_ALL = (1 << 11),
68 L_PACKET = (1 << 12),
69 L_GRAB = (1 << 13),
70 L_FFMPEG = (1 << 14),
71};
72
83public:
84 static std::shared_ptr<cSoftHdLogger> GetLogger();
85 static void LogFFmpegCallback(void *, int, const char *, va_list);
86 void LogFatal(const char *format, ...);
87 void LogError(const char *format, ...);
88 void LogWarning(const char *format, ...);
89 void LogInfo(const char *format, ...);
90 void LogDebug(const char *format, ...);
91 void LogDebug2(const int cat, const char *format, ...);
92 void LogFFmpeg(const char *, va_list);
93 void SetLogLevel(int level);
94
95private:
96 cSoftHdLogger(void) = default;
97 cSoftHdLogger(const cSoftHdLogger &) = delete;
99
100 static constexpr int MAX_LOGMESSAGE_SIZE = 512;
101
102 std::atomic<int> m_logLevel = 0;
103};
104
105#endif
Logger.
Definition logger.h:82
static std::shared_ptr< cSoftHdLogger > GetLogger()
Get an instance to the global logger.
Definition logger.cpp:43
void LogInfo(const char *format,...)
Log to syslog LOG_INFO.
Definition logger.cpp:121
void LogError(const char *format,...)
Log to syslog LOG_ERR.
Definition logger.cpp:83
void LogFFmpeg(const char *, va_list)
Log to syslog LOG_DEBUG and add prefix [FFMpeg] to output.
Definition logger.cpp:219
void LogDebug(const char *format,...)
Log to syslog LOG_DEBUG.
Definition logger.cpp:140
std::atomic< int > m_logLevel
loglevel mask (see enum LogFlags)
Definition logger.h:102
void LogWarning(const char *format,...)
Log to syslog LOG_WARNING.
Definition logger.cpp:102
static void LogFFmpegCallback(void *, int, const char *, va_list)
Callback for ffmpeg logs.
Definition logger.cpp:241
cSoftHdLogger(const cSoftHdLogger &)=delete
void SetLogLevel(int level)
Set the loglevel.
Definition logger.cpp:54
cSoftHdLogger & operator=(const cSoftHdLogger &)=delete
cSoftHdLogger(void)=default
static constexpr int MAX_LOGMESSAGE_SIZE
max size of the log message
Definition logger.h:100
void LogFatal(const char *format,...)
Log to syslog LOG_ERR and abort.
Definition logger.cpp:62
void LogDebug2(const int cat, const char *format,...)
Log to syslog LOG_DEBUG and add logging category to output.
Definition logger.cpp:159
LogFlags
Logger Flags.
Definition logger.h:55
@ L_PACKET
decoder packet/frame tracking logs
Definition logger.h:68
@ L_DRM
drm logs
Definition logger.h:60
@ L_OPENGL_TIME
opengl osd flush time measurement
Definition logger.h:66
@ L_STILL
stillpicture logs
Definition logger.h:62
@ L_FFMPEG
ffmpeg logs
Definition logger.h:70
@ L_AV_SYNC
audio/video sync logs
Definition logger.h:57
@ L_MEDIA
mediaplayer logs
Definition logger.h:64
@ L_OSD
osd logs
Definition logger.h:59
@ L_TRICK
trickspeed logs
Definition logger.h:63
@ L_OPENGL
opengl osd logs
Definition logger.h:65
@ L_DEBUG
common debug logs
Definition logger.h:56
@ L_OPENGL_TIME_ALL
opengl osd all commands time measurement
Definition logger.h:67
@ L_CODEC
codec logs
Definition logger.h:61
@ L_SOUND
sound logs
Definition logger.h:58
@ L_GRAB
grabbing logs
Definition logger.h:69