SDC C-Project CF Review 프로그램
LYW
2021-06-23 598cef9de915e5554fc2f7572b24f15d8a4acf41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/******************************************************************************
 *    
 *    (C) Copyright WDI 2010
 *    
 ******************************************************************************
 *
 *    FILE:        logger.h
 *
 *    PROJECT:    AFT Sensor
 *
 *    SUBPROJECT:    .
 *
 *    Description: Logging mechanism
 *    
 ******************************************************************************
 *    
 *    Change Activity
 *    Defect  Date       Developer        Description
 *    Number  DD/MM/YYYY Name
 *    ======= ========== ================ =======================================
 *          15/10/2010 Chris O.         Initial version
 *          15/11/2010 Chris O.         Added synchronization objects for
 *                                      multithreaded applications
 *
 ******************************************************************************/
#pragma once
 
#ifdef __cplusplus
 
#include <stdio.h>
#include "LogSubsystemInterface.h"
 
class CLogger
{
public:
    enum LogLevels
    {
        LogOff = 0,
        LogLow,
        LogMid,
        LogAll
    };
 
protected:
    FILE *m_pFile;
    LogLevels m_iLogLevel;
    NSLogSubsystem::ILogSubsystem *    m_pLogger ;
 
private:
    CRITICAL_SECTION m_cs;
 
public:
    CLogger() : m_pFile(NULL), m_iLogLevel(LogOff), m_pLogger ( NULL ) 
    {
        InitializeCriticalSection(&m_cs);
    }
 
    ~CLogger() 
    {
        if ( m_pLogger != NULL )
        {
            m_pLogger -> Release () ;
        }
 
        DeleteCriticalSection(&m_cs);
    }
 
    bool openLogFile(const char *pLogFilePath, const char *pMode);
    bool closeLogFile();
    void setLogLevel(LogLevels iLogLevel);
    LogLevels getLogLevel(void);
    FILE *getLogFileHandle(void);
    void saveToLog(char const *strMsg, LogLevels iLogLevel);
    void setExternalLogger ( NSLogSubsystem::ILogSubsystem * pLogger ) { m_pLogger = pLogger ; }
};
 
#endif