1//
2// LogFile_STD.h
3//
4// Library: Foundation
5// Package: Logging
6// Module: LogFile
7//
8// Definition of the LogFileImpl class using iostreams.
9//
10// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
11// and Contributors.
12//
13// SPDX-License-Identifier: BSL-1.0
14//
15
16
17#ifndef Foundation_LogFile_STD_INCLUDED
18#define Foundation_LogFile_STD_INCLUDED
19
20
21#include "Poco/Foundation.h"
22#include "Poco/Timestamp.h"
23#include "Poco/FileStream.h"
24
25
26namespace Poco {
27
28
29class Foundation_API LogFileImpl
30 /// The implementation of LogFile for non-Windows platforms.
31 /// The native filesystem APIs are used for
32 /// total control over locking behavior.
33{
34public:
35 LogFileImpl(const std::string& path);
36 ~LogFileImpl();
37 void writeImpl(const std::string& text, bool flush);
38 UInt64 sizeImpl() const;
39 Timestamp creationDateImpl() const;
40 const std::string& pathImpl() const;
41
42private:
43 std::string _path;
44 mutable Poco::FileOutputStream _str;
45 Timestamp _creationDate;
46 UInt64 _size;
47};
48
49
50} // namespace Poco
51
52
53#endif // Foundation_LogFile_STD_INCLUDED
54