libassa
3.5.1
assa
FileLogger.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
//------------------------------------------------------------------------------
3
// $Id: FileLogger.h,v 1.4 2005/10/08 02:42:00 vlg Exp $
4
//------------------------------------------------------------------------------
5
// FileLogger.h
6
//------------------------------------------------------------------------------
7
// Copyright (C) 1997-2002 Vladislav Grinchenko
8
//
9
// This library is free software; you can redistribute it and/or
10
// modify it under the terms of the GNU Library General Public
11
// License as published by the Free Software Foundation; either
12
// version 2 of the License, or (at your option) any later version.
13
//------------------------------------------------------------------------------
14
#ifndef FILE_LOGGER_H
15
#define FILE_LOGGER_H
16
17
#include <fstream>
18
#include <string>
19
#include <iostream>
20
21
#include "
assa/Logger_Impl.h
"
22
23
namespace
ASSA
{
24
30
class
FileLogger
:
public
Logger_Impl
31
{
32
public
:
33
FileLogger
();
34
35
virtual
int
log_open
(
const
char
* logfname_,
36
u_long
groups_,
37
u_long
maxsize_ = 10485760);
// 10 Mb = 1024x1024x10
38
39
virtual
int
log_close
(
void
);
40
virtual
void
log_resync
(
void
);
41
42
virtual
int
log_msg
(
Group
g_,
43
size_t
indent_level_,
44
const
string
& func_name_,
45
size_t
expected_sz_,
46
const
char
* fmt_, va_list);
47
virtual
int
log_func
(
Group
g_,
48
size_t
indent_level_,
49
const
string
& func_name_,
50
marker_t
type_);
51
56
int
log_raw_msg
(
const
string
& msg_);
57
void
dump
(
void
);
58
59
private
:
60
enum
state_t
{
opened
,
closed
};
61
62
FileLogger
(
const
FileLogger
&);
// copy constructor
63
FileLogger
&
operator=
(
const
FileLogger
&);
// copy assignment
64
65
int
handle_rollover
();
66
67
private
:
68
std::ofstream
m_sink
;
69
u_long
m_maxsize
;
70
state_t
m_state
;
71
u_long
m_bytecount
;
72
};
73
74
inline
FileLogger::
75
FileLogger
()
76
: m_maxsize (1048576),
77
m_state (closed),
78
m_bytecount (0)
79
{
80
/*--- empty ---*/
81
}
82
83
inline
void
84
FileLogger::
85
log_resync
(
void
)
86
{
87
m_sink
<<
std::flush
;
88
}
89
90
}
// end namespace ASSA
91
92
#endif
/* FILE_LOGGER_H */
ASSA::marker_t
marker_t
Definition:
LogMask.h:67
ASSA::FileLogger::log_resync
virtual void log_resync(void)
Definition:
FileLogger.h:85
ASSA::Group
Group
Definition:
LogMask.h:25
ASSA::FileLogger::log_open
virtual int log_open(const char *logfname_, u_long groups_, u_long maxsize_=10485760)
Open File Logger.
Definition:
FileLogger.cpp:33
ASSA::FileLogger::handle_rollover
int handle_rollover()
Definition:
FileLogger.cpp:199
ASSA::FileLogger::log_close
virtual int log_close(void)
Definition:
FileLogger.cpp:70
ASSA::FileLogger::log_func
virtual int log_func(Group g_, size_t indent_level_, const string &func_name_, marker_t type_)
Definition:
FileLogger.cpp:162
ASSA::FileLogger::m_bytecount
u_long m_bytecount
Definition:
FileLogger.h:71
ASSA::Logger_Impl
Definition:
Logger_Impl.h:141
ASSA::FileLogger::operator=
FileLogger & operator=(const FileLogger &)
ASSA::FileLogger::m_maxsize
u_long m_maxsize
Definition:
FileLogger.h:69
ASSA::FileLogger::log_msg
virtual int log_msg(Group g_, size_t indent_level_, const string &func_name_, size_t expected_sz_, const char *fmt_, va_list)
If output string is longer then LOGGER_MAXLINE-1, it is truncated to that size.
Definition:
FileLogger.cpp:117
u_long
unsigned long u_long
Definition:
Logger_Impl.h:41
ASSA::FileLogger::state_t
state_t
Definition:
FileLogger.h:60
ASSA::FileLogger::log_raw_msg
int log_raw_msg(const string &msg_)
Log message as it is (raw) without indentation or timestamping, but still perform byte counting and t...
Definition:
FileLogger.cpp:184
ASSA::FileLogger::closed
@ closed
Definition:
FileLogger.h:60
ASSA::FileLogger
Definition:
FileLogger.h:30
ASSA::FileLogger::opened
@ opened
Definition:
FileLogger.h:60
ASSA::FileLogger::m_sink
std::ofstream m_sink
Definition:
FileLogger.h:68
ASSA::FileLogger::dump
void dump(void)
Definition:
FileLogger.cpp:235
ASSA::flush
Socket & flush(Socket &os_)
flush manipulator.
Definition:
Socket.h:587
ASSA::FileLogger::m_state
state_t m_state
Definition:
FileLogger.h:70
ASSA
Definition:
Acceptor.h:40
Logger_Impl.h
ASSA::FileLogger::FileLogger
FileLogger()
Definition:
FileLogger.h:75
Generated by
1.8.17