Pleora Technologies Inc. eBUS SDK v7.0.1.7536 API



Loading...
Searching...
No Matches
PvLogger.h
1// *****************************************************************************
2//
3// Copyright (c) 2016, Pleora Technologies Inc., All rights reserved.
4//
5// *****************************************************************************
6
7#ifndef __PVLOGGER_H__
8#define __PVLOGGER_H__
9
10#include <PvResult.h>
11
12#include <sstream>
13
14
15namespace PtUtilsLib
16{
17 class Logger;
18}
19
20namespace PvBaseLib
21{
22 class LogSink;
23}
24
25enum PvLogLevelEnum
26{
27 PvLogLevelUnknown,
28 PvLogLevelInfo,
29 PvLogLevelError,
30 PvLogLevelWarning,
31 PvLogLevelCritical,
32 PvLogLevelDebug
33};
34
35
36class PV_BASE_API PvLogger
37{
38public:
39
40 PvLogger( const PvString &aCategory );
41 virtual ~PvLogger();
42
43 void LogInfo( const char *aFile, int aLine, const char *aFunction, const char *aMessage );
44 void LogError( const char *aFile, int aLine, const char *aFunction, const char *aMessage );
45 void LogWarning( const char *aFile, int aLine, const char *aFunction, const char *aMessage );
46 void LogCritical( const char *aFile, int aLine, const char *aFunction, const char *aMessage );
47 void LogDebug( const char *aFile, int aLine, const char *aFunction, const char *aMessage );
48
49 void SetLogPriority( int32_t aLevel );
50 int32_t GetLogPriority();
51
52private:
53
54 // Not implemented
55 PvLogger();
56 PvLogger( const PvLogger & );
57 const PvLogger &operator=( const PvLogger & );
58
59 PtUtilsLib::Logger *mThis;
60
61};
62
63
64#define PV_LOGINFO( logger, entry ) { \
65 std::stringstream lStrXTemp; lStrXTemp << entry; \
66 ( logger ).LogInfo( __FILE__, __LINE__, __FUNCTION__, lStrXTemp.str().c_str() ); }
67
68#define PV_LOGERROR( logger, entry ) { \
69 std::stringstream lStrXTemp; lStrXTemp << entry; \
70 ( logger ).LogError( __FILE__, __LINE__, __FUNCTION__, lStrXTemp.str().c_str() ); }
71
72#define PV_LOGANDRETURN( logger, result, entry ) { \
73 std::stringstream lStrXTemp; lStrXTemp << entry; \
74 ( logger ).LogError( __FILE__, __LINE__, __FUNCTION__, lStrXTemp.str().c_str() ); \
75 return PvResult( result, lStrXTemp.str().c_str() ); }
76
77#define PV_LOGWARNING( logger, entry ) { \
78 std::stringstream lStrXTemp; lStrXTemp << entry; \
79 ( logger ).LogWarning( __FILE__, __LINE__, __FUNCTION__, lStrXTemp.str().c_str() ); }
80
81#define PV_LOGCRITICAL( logger, entry ) { \
82 std::stringstream lStrXTemp; lStrXTemp << entry; \
83 ( logger ).LogCritical( __FILE__, __LINE__, __FUNCTION__, lStrXTemp.str().c_str() ); }
84
85#define PV_LOGDEBUG( logger, entry ) { \
86 std::stringstream lStrXTemp; lStrXTemp << entry; \
87 ( logger ).LogDebug( __FILE__, __LINE__, __FUNCTION__, lStrXTemp.str().c_str() ); }
88
89
90class PV_BASE_API PvLogSink
91{
92public:
93
94 PvLogSink();
95 virtual ~PvLogSink();
96
97 virtual void Log( PvLogLevelEnum aLevel, const char *aFile, uint32_t aLine, const char *aFunction, const char *aCategory, const char *aMessage ) = 0;
98
99private:
100
101 // Not implemented
102 PvLogSink( const PvLogSink & );
103 const PvLogSink &operator=( const PvLogSink & );
104
105 PvBaseLib::LogSink *mThis;
106
107};
108
109#endif
Class used to register logging callbacks from your application.
Definition PvLogger.h:91
Used to log information or events in some logging category.
Definition PvLogger.h:37
String class.
Definition PvString.h:26

Copyright (c) 2002-2026 Pleora Technologies Inc.
www.pleora.com