Apache Log4cxx  Version 2.0.0
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
26#include <functional>
27
28namespace LOG4CXX_NS
29{
30
31namespace rolling
32{
33
34
35
140class LOG4CXX_EXPORT TimeBasedRollingPolicy
141 : public RollingPolicyBase
142 , public virtual TriggeringPolicy
143{
150
151 private:
152 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(TimeBasedRollingPolicyPrivate, m_priv)
153
154 public:
157
166 void activateOptions( ) override;
167
168 void setMultiprocess(bool multiprocess);
169
174 RolloverDescriptionPtr initialize( const LogString& currentActiveFile, bool append ) override;
175
180 RolloverDescriptionPtr rollover( const LogString& currentActiveFile, bool append ) override;
181
194 Appender* appender,
195 const spi::LoggingEventPtr& event,
196 const LogString& filename,
197 size_t fileLength) override;
198
208 void setOption(const LogString& option, const LogString& value) override;
209
214
219
220 protected:
226 LOG4CXX_NS::pattern::PatternMap getFormatSpecifiers() const override;
227
228 private:
229
233 int createMMapFile(const std::string& lastfilename, LOG4CXX_NS::helpers::Pool& pool);
234
238 bool isMapFileEmpty(LOG4CXX_NS::helpers::Pool& pool);
239
243 void initMMapFile(const LogString& lastFileName, LOG4CXX_NS::helpers::Pool& pool);
244
248 int lockMMapFile(int type);
249
253 int unLockMMapFile();
254
258 const std::string createFile(const std::string& filename, const std::string& suffix, LOG4CXX_NS::helpers::Pool& pool);
259
260};
261
263
264}
265}
266
267#endif
268
Implement this interface for your own strategies for outputting log statements.
Definition appender.h:51
void activateOptions() override
Activate the options that were previously set with calls to option setters.
virtual RolloverDescriptionPtr rollover(const LogString &currentActiveFile, bool append)=0
Prepare for a rollover.
virtual RolloverDescriptionPtr initialize(const LogString &currentActiveFile, bool append)=0
Initialize the policy and return any initial actions for rolling file appender.
TimeBasedRollingPolicy is both easy to configure and quite powerful.
Definition timebasedrollingpolicy.h:143
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.
RolloverDescriptionPtr initialize(const LogString &currentActiveFile, bool append) override
Initialize the policy and return any initial actions for rolling file appender.Description of the ini...
bool isLastFileNameUnchanged()
Was the name in shared memory set by this process?
void setOption(const LogString &option, const LogString &value) override
Set option to value.
RolloverDescriptionPtr rollover(const LogString &currentActiveFile, bool append) override
Prepare for a rollover.This method is called prior to closing the active log file,...
log4cxx::pattern::PatternMap getFormatSpecifiers() const override
A map from "d" and "date" to a date conversion formatter.
void setMultiprocess(bool multiprocess)
void activateOptions() override
Activate the options that were previously set with calls to option setters.
void loadLastFileName()
Load the name (set by some other process) from shared memory.
A TriggeringPolicy controls the conditions under which rollover occurs.
Definition triggeringpolicy.h:46
LOG4CXX_PTR_DEF(Action)
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition appender.h:32
std::basic_string< logchar > LogString
Definition logstring.h:51
#define LOG4CXX_CAST_ENTRY(Interface)
Definition object.h:154
#define END_LOG4CXX_CAST_MAP()
Definition object.h:148
#define DECLARE_LOG4CXX_OBJECT(object)
Definition object.h:41
#define LOG4CXX_CAST_ENTRY_CHAIN(Interface)
Definition object.h:160
#define BEGIN_LOG4CXX_CAST_MAP()
Definition object.h:142