summaryrefslogtreecommitdiff
path: root/src/inc/circularlog.h
blob: 4ee8d2fa998a582ef352cc2f3cbbaea141f50dd0 (plain)
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
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.


#ifndef _CIRCULARLOG_H__

#define _CIRCULARLOG_H__

#include "sstring.h"

class CircularLog
{
public:
    CircularLog();
    ~CircularLog();
    
    bool Init(const WCHAR* logname, const WCHAR* logHeader, DWORD maxSize = 1024*1024);
    void Shutdown();
    void Log(const WCHAR* string);
  
protected:

    void   CheckForLogReset(BOOL fOverflow);
    BOOL   CheckLogHeader();
    HANDLE OpenFile();    
    void   CloseFile();

    bool            m_bInit;
    SString         m_LogFilename;
    SString         m_LogHeader;
    SString         m_OldLogFilename;
    SString         m_LockFilename;
    DWORD           m_MaxSize;
    unsigned        m_uLogCount;
};

#endif