1 /*
2  *  Copyright (C) 2014-2020 Garrett Brown
3  *  Copyright (C) 2014-2020 Team Kodi
4  *  Portions Copyright (C) 2013-2014 Lars Op den Kamp
5  *
6  *  SPDX-License-Identifier: GPL-2.0-or-later
7  *  See LICENSE.md for more information.
8  */
9 
10 #pragma once
11 
12 namespace JOYSTICK
13 {
14   enum SYS_LOG_LEVEL
15   {
16     SYS_LOG_NONE = 0,
17     SYS_LOG_ERROR,
18     SYS_LOG_INFO,
19     SYS_LOG_DEBUG
20   };
21 
22   enum SYS_LOG_TYPE
23   {
24     SYS_LOG_TYPE_NULL = 0, // Discard log
25     SYS_LOG_TYPE_CONSOLE,  // Log to stdout
26     SYS_LOG_TYPE_SYSLOG,   // Log to syslog
27     SYS_LOG_TYPE_ADDON     // Log to frontend
28   };
29 
30   class ILog
31   {
32   public:
~ILog(void)33     virtual ~ILog(void) { }
34 
35     virtual void Log(SYS_LOG_LEVEL level, const char* logline) = 0;
36 
37     virtual SYS_LOG_TYPE Type(void) const = 0;
38   };
39 }
40