Apache Log4cxx
Version 1.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
timebasedrollingpolicy.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
19
#if !defined(_LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H)
20
#define _LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H
21
22
#include <
log4cxx/rolling/rollingpolicybase.h
>
23
#include <
log4cxx/rolling/triggeringpolicy.h
>
24
#include <
log4cxx/writerappender.h
>
25
#include <
log4cxx/helpers/outputstream.h
>
26
#include <functional>
27
28
namespace
LOG4CXX_NS
29
{
30
31
namespace
rolling
32
{
33
34
35
140
class
LOG4CXX_EXPORT
TimeBasedRollingPolicy
:
public
virtual
RollingPolicyBase
,
141
public
virtual
TriggeringPolicy
142
{
143
DECLARE_LOG4CXX_OBJECT
(
TimeBasedRollingPolicy
)
144
BEGIN_LOG4CXX_CAST_MAP
()
145
LOG4CXX_CAST_ENTRY
(
TimeBasedRollingPolicy
)
146
LOG4CXX_CAST_ENTRY_CHAIN
(
RollingPolicyBase
)
147
LOG4CXX_CAST_ENTRY_CHAIN
(
TriggeringPolicy
)
148
END_LOG4CXX_CAST_MAP
()
149
150
private
:
151
LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(TimeBasedRollingPolicyPrivate, m_priv)
152
153
public
:
154
TimeBasedRollingPolicy
();
155
virtual
~TimeBasedRollingPolicy
();
156
164
void
activateOptions
(
helpers::Pool
& )
override
;
165
166
void
setMultiprocess
(
bool
multiprocess);
167
171
RolloverDescriptionPtr
initialize
(
172
const
LogString
& currentActiveFile,
173
const
bool
append,
174
helpers::Pool
& pool)
override
;
175
179
RolloverDescriptionPtr
rollover
(
180
const
LogString
& currentActiveFile,
181
const
bool
append,
182
helpers::Pool
& pool)
override
;
183
195
bool
isTriggeringEvent
(
196
Appender
* appender,
197
const
spi::LoggingEventPtr
& event,
198
const
LogString
& filename,
199
size_t
fileLength)
override
;
200
210
void
setOption
(
const
LogString
& option,
const
LogString
& value)
override
;
211
215
bool
isLastFileNameUnchanged
();
216
220
void
loadLastFileName
();
221
222
protected
:
228
LOG4CXX_NS::pattern::PatternMap
getFormatSpecifiers
()
const override
;
229
230
private
:
231
235
int
createMMapFile(
const
std::string& lastfilename, LOG4CXX_NS::helpers::Pool& pool);
236
240
bool
isMapFileEmpty(LOG4CXX_NS::helpers::Pool& pool);
241
245
void
initMMapFile(
const
LogString
& lastFileName, LOG4CXX_NS::helpers::Pool& pool);
246
250
int
lockMMapFile(
int
type);
251
255
int
unLockMMapFile();
256
260
const
std::string createFile(
const
std::string& filename,
const
std::string& suffix, LOG4CXX_NS::helpers::Pool& pool);
261
262
};
263
264
LOG4CXX_PTR_DEF
(
TimeBasedRollingPolicy
);
265
266
}
267
}
268
269
#endif
270
log4cxx::Appender
Implement this interface for your own strategies for outputting log statements.
Definition
appender.h:51
log4cxx::helpers::Pool
Definition
pool.h:33
log4cxx::rolling::RollingPolicyBase::RollingPolicyBase
RollingPolicyBase()
log4cxx::rolling::TimeBasedRollingPolicy
TimeBasedRollingPolicy is both easy to configure and quite powerful.
Definition
timebasedrollingpolicy.h:142
log4cxx::rolling::TimeBasedRollingPolicy::isTriggeringEvent
bool isTriggeringEvent(Appender *appender, const spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength) override
Determines if a rollover may be appropriate at this time.
log4cxx::rolling::TimeBasedRollingPolicy::activateOptions
void activateOptions(helpers::Pool &) override
Activate the options that were previously set with calls to option setters.
log4cxx::rolling::TimeBasedRollingPolicy::rollover
RolloverDescriptionPtr rollover(const LogString ¤tActiveFile, const bool append, helpers::Pool &pool) override
Prepare for a rollover.This method is called prior to closing the active log file,...
log4cxx::rolling::TimeBasedRollingPolicy::isLastFileNameUnchanged
bool isLastFileNameUnchanged()
Was the name in shared memory set by this process?
log4cxx::rolling::TimeBasedRollingPolicy::TimeBasedRollingPolicy
TimeBasedRollingPolicy()
log4cxx::rolling::TimeBasedRollingPolicy::initialize
RolloverDescriptionPtr initialize(const LogString ¤tActiveFile, const bool append, helpers::Pool &pool) override
Initialize the policy and return any initial actions for rolling file appender.Description of the ini...
log4cxx::rolling::TimeBasedRollingPolicy::setOption
void setOption(const LogString &option, const LogString &value) override
Set option to value.
log4cxx::rolling::TimeBasedRollingPolicy::getFormatSpecifiers
log4cxx::pattern::PatternMap getFormatSpecifiers() const override
A map from "d" and "date" to a date conversion formatter.
log4cxx::rolling::TimeBasedRollingPolicy::setMultiprocess
void setMultiprocess(bool multiprocess)
log4cxx::rolling::TimeBasedRollingPolicy::loadLastFileName
void loadLastFileName()
Load the name (set by some other process) from shared memory.
log4cxx::rolling::TimeBasedRollingPolicy::~TimeBasedRollingPolicy
virtual ~TimeBasedRollingPolicy()
log4cxx::rolling::TriggeringPolicy
A TriggeringPolicy controls the conditions under which rollover occurs.
Definition
triggeringpolicy.h:47
log4cxx::rolling::LOG4CXX_PTR_DEF
LOG4CXX_PTR_DEF(Action)
log4cxx::spi::LoggingEventPtr
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition
appender.h:32
log4cxx::LogString
std::basic_string< logchar > LogString
Definition
logstring.h:60
LOG4CXX_CAST_ENTRY
#define LOG4CXX_CAST_ENTRY(Interface)
Definition
object.h:154
END_LOG4CXX_CAST_MAP
#define END_LOG4CXX_CAST_MAP()
Definition
object.h:148
DECLARE_LOG4CXX_OBJECT
#define DECLARE_LOG4CXX_OBJECT(object)
Definition
object.h:41
LOG4CXX_CAST_ENTRY_CHAIN
#define LOG4CXX_CAST_ENTRY_CHAIN(Interface)
Definition
object.h:160
BEGIN_LOG4CXX_CAST_MAP
#define BEGIN_LOG4CXX_CAST_MAP()
Definition
object.h:142
outputstream.h
rollingpolicybase.h
triggeringpolicy.h
writerappender.h
src
main
include
log4cxx
rolling
timebasedrollingpolicy.h
Generated by
1.17.0 on
SITE_PUBLISHED_DATE
Copyright © 2017-2026
Apache Software Foundation
. Apache, Chainsaw, log4cxx, Log4j, Log4net, log4php and the Apache logo are
trademarks or registered trademarks
of The Apache Software Foundation.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Privacy Policy
.