Apache Log4cxx  Version 2.0.0
Loading...
Searching...
No Matches
logmanager.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#ifndef _LOG4CXX_LOG_MANAGER_H
19#define _LOG4CXX_LOG_MANAGER_H
20
21#include <log4cxx/logstring.h>
22#include <vector>
24
25namespace LOG4CXX_NS
26{
27class Logger;
28typedef std::shared_ptr<Logger> LoggerPtr;
29typedef std::vector<LoggerPtr> LoggerList;
30
31namespace spi
32{
33class LoggerFactory;
34typedef std::shared_ptr<LoggerFactory> LoggerFactoryPtr;
35}
36
44class LOG4CXX_EXPORT LogManager
45{
46 private:
47 static void* guard;
48 static spi::RepositorySelectorPtr getRepositorySelector();
49
50 public:
66
67 static void setRepositorySelector(spi::RepositorySelectorPtr selector,
68 void* guard);
69
71
79
88 static LoggerPtr getLogger(const std::string& name);
89
98 static LoggerPtr getLogger(const std::string& name,
99 const spi::LoggerFactoryPtr& factory);
105 static LoggerPtr exists(const std::string& name);
106#if LOG4CXX_WCHAR_T_API
115 static LoggerPtr getLogger(const std::wstring& name);
124 static LoggerPtr getLogger(const std::wstring& name,
125 const spi::LoggerFactoryPtr& factory);
131 static LoggerPtr exists(const std::wstring& name);
132#endif
133#if LOG4CXX_CFSTRING_API
143 static LoggerPtr getLogger(const CFStringRef& name);
153 static LoggerPtr getLogger(const CFStringRef& name,
154 const spi::LoggerFactoryPtr& factory);
160 static LoggerPtr exists(const CFStringRef& name);
161#endif
162
163
173 static LoggerPtr getLoggerLS(const LogString& name);
183 static LoggerPtr getLoggerLS(const LogString& name,
184 const spi::LoggerFactoryPtr& factory);
185
191 static LoggerPtr existsLS(const LogString& name);
192
194
199 static void shutdown();
200
206 static void resetConfiguration();
207
219 static bool removeLogger(const LogString& name, bool ifNotUsed = true);
220}; // class LogManager
221} // namespace log4cxx
222
223
224#endif //_LOG4CXX_LOG_MANAGER_H
Use the LogManager class to retreive Logger instances or to operate on the current LoggerRepository.
Definition logmanager.h:45
static LoggerPtr getLogger(const std::wstring &name)
Retrieve the name Logger instance from the LoggerRepository using the default factory to create it if...
static LoggerPtr exists(const std::wstring &name)
A pointer to the Logger name instance if it exists in the LoggerRepository.
static LoggerPtr getLogger(const CFStringRef &name)
Retrieve the name Logger instance from the LoggerRepository using the default factory to create it if...
static LoggerPtr existsLS(const LogString &name)
A pointer to the Logger name instance if it exists in the LoggerRepository.
static LoggerPtr getLogger(const std::string &name, const spi::LoggerFactoryPtr &factory)
Retrieve the name Logger instance from the LoggerRepository using factory to create it if required.
static void setRepositorySelector(spi::RepositorySelectorPtr selector, void *guard)
Use selector to source the LoggerRepository, but only if the correct guard is passed as parameter.
static spi::LoggerRepositoryPtr getLoggerRepository()
static bool removeLogger(const LogString &name, bool ifNotUsed=true)
Remove the name Logger from the LoggerRepository.
static LoggerPtr getLogger(const CFStringRef &name, const spi::LoggerFactoryPtr &factory)
Retrieve the name Logger instance from the LoggerRepository using factory to create it if required.
static LoggerPtr getRootLogger()
Retrieve the root logger from the LoggerRepository.
static LoggerPtr getLogger(const std::wstring &name, const spi::LoggerFactoryPtr &factory)
Retrieve the name Logger instance from the LoggerRepository using factory to create it if required.
static LoggerList getCurrentLoggers()
static LoggerPtr exists(const CFStringRef &name)
A pointer to the Logger name instance if it exists in the LoggerRepository.
static LoggerPtr getLoggerLS(const LogString &name, const spi::LoggerFactoryPtr &factory)
Retrieve the name Logger instance from the LoggerRepository using factory to create it if required.
static void resetConfiguration()
Reset all values contained in this current LoggerRepository to their default.
static LoggerPtr getLogger(const std::string &name)
Retrieve the name Logger instance from the LoggerRepository using the default factory to create it if...
static void shutdown()
Safely close and remove all appenders in all loggers including the root logger.
static LoggerPtr getLoggerLS(const LogString &name)
Retrieve the name Logger instance from the LoggerRepository using the default factory to create it if...
static LoggerPtr exists(const std::string &name)
A pointer to the Logger name instance if it exists in the LoggerRepository.
const struct __CFString * CFStringRef
Definition logstring.h:30
Definition appender.h:30
std::shared_ptr< LoggerFactory > LoggerFactoryPtr
Definition logmanager.h:34
std::shared_ptr< LoggerRepository > LoggerRepositoryPtr
Definition repositoryselector.h:28
std::basic_string< logchar > LogString
Definition logstring.h:51
std::shared_ptr< Logger > LoggerPtr
Definition logmanager.h:28
std::vector< LoggerPtr > LoggerList
Definition logmanager.h:29