56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine Master
|
|
// License Agreement.
|
|
//
|
|
// Log - Platform independent interface for a Logging class
|
|
//
|
|
#ifndef WVCDM_UTIL_LOG_H_
|
|
#define WVCDM_UTIL_LOG_H_
|
|
|
|
#include "util_common.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
// Simple logging class. The implementation is platform dependent.
|
|
|
|
typedef enum {
|
|
// This log level should only be used for |g_cutoff|, in order to silence all
|
|
// logging. It should never be passed to |Log()| as a log level.
|
|
LOG_SILENT = -1,
|
|
|
|
LOG_ERROR = 0,
|
|
LOG_WARN = 1,
|
|
LOG_INFO = 2,
|
|
LOG_DEBUG = 3,
|
|
LOG_VERBOSE = 4,
|
|
} LogPriority;
|
|
|
|
extern LogPriority g_cutoff;
|
|
|
|
// Enable/disable verbose logging (LOGV).
|
|
// This function is supplied for cases where the system layer does not
|
|
// initialize logging. This is also needed to initialize logging in
|
|
// unit tests.
|
|
CORE_UTIL_EXPORT void InitLogging();
|
|
|
|
CORE_UTIL_EXPORT void Log(
|
|
const char* file, const char* function, int line, LogPriority level,
|
|
const char* fmt, ...);
|
|
|
|
// Log APIs
|
|
#ifndef LOGE
|
|
#define LOGE(...) Log(__FILE__, __func__, __LINE__, \
|
|
wvcdm::LOG_ERROR, __VA_ARGS__)
|
|
#define LOGW(...) Log(__FILE__, __func__, __LINE__, \
|
|
wvcdm::LOG_WARN, __VA_ARGS__)
|
|
#define LOGI(...) Log(__FILE__, __func__, __LINE__, \
|
|
wvcdm::LOG_INFO, __VA_ARGS__)
|
|
#define LOGD(...) Log(__FILE__, __func__, __LINE__, \
|
|
wvcdm::LOG_DEBUG, __VA_ARGS__)
|
|
#define LOGV(...) Log(__FILE__, __func__, __LINE__, \
|
|
wvcdm::LOG_VERBOSE, __VA_ARGS__)
|
|
#endif
|
|
} // namespace wvcdm
|
|
|
|
#endif // WVCDM_UTIL_LOG_H_
|