Apache Log4cxx  Version 2.0.0
Loading...
Searching...
No Matches
multiprocessrollingfileappender.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#if !defined(LOG4CXX_ROLLING_MULTIPROCESS_ROLLING_FILE_APPENDER_H)
19#define LOG4CXX_ROLLING_MULTIPROCESS_ROLLING_FILE_APPENDER_H
20
24
25namespace LOG4CXX_NS
26{
27namespace rolling
28{
29
30
42{
48 protected:
49 struct MultiprocessRollingFileAppenderPriv;
50
51 public:
53
60 void activateOptions( ) override;
61
76 bool rollover();
77
78 protected:
79
83 void subAppend( const spi::LoggingEventPtr& event ) override;
84
85 protected:
95 helpers::WriterPtr createWriter(const helpers::OutputStreamPtr& os) override;
96
97 private:
103 bool synchronizedRollover(const TriggeringPolicyPtr& trigger = TriggeringPolicyPtr() );
104
108 void setFileLength(size_t length);
109
113 bool isRolloverCheckNeeded();
114
120 bool isAlreadyRolled(const LogString& fileName, size_t* pSize = 0);
121
126 bool getCurrentFileSize(size_t* pSize);
127
131 void reopenFile(const LogString& fileName);
132};
133
135
136}
137}
138
139#endif
140
A special version of the RollingFileAppender that acts properly with multiple processes.
Definition multiprocessrollingfileappender.h:42
helpers::WriterPtr createWriter(const helpers::OutputStreamPtr &os) override
Returns an OutputStreamWriter when passed an OutputStream.
void subAppend(const spi::LoggingEventPtr &event) override
Actual writing occurs here.
bool rollover()
Implements the usual roll over behaviour.
void activateOptions() override
Derived appenders should override this method if option structure requires it.
void activateOptions() override
Derived appenders should override this method if option structure requires it.
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