⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loggingconfigurator.h

📁 C++ class libraries for network-centric, portable applications, integrated perfectly with the C++ St
💻 H
字号:
//// LoggingConfigurator.h//// $Id: //poco/1.2/Util/include/Poco/Util/LoggingConfigurator.h#2 $//// Library: Util// Package: Configuration// Module:  LoggingConfigurator//// Definition of the LoggingConfigurator class.//// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.// and Contributors.//// Permission is hereby granted, free of charge, to any person or organization// obtaining a copy of the software and accompanying documentation covered by// this license (the "Software") to use, reproduce, display, distribute,// execute, and transmit the Software, and to prepare derivative works of the// Software, and to permit third-parties to whom the Software is furnished to// do so, all subject to the following:// // The copyright notices in the Software and this entire statement, including// the above license grant, this restriction and the following disclaimer,// must be included in all copies of the Software, in whole or in part, and// all derivative works of the Software, unless such copies or derivative// works are solely in the form of machine-executable object code generated by// a source language processor.// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER// DEALINGS IN THE SOFTWARE.//#ifndef Util_LoggingConfigurator_INCLUDED#define Util_LoggingConfigurator_INCLUDED#include "Poco/Util/Util.h"#include "Poco/Formatter.h"#include "Poco/Channel.h"namespace Poco {namespace Util {class AbstractConfiguration;class Util_API LoggingConfigurator	/// This utility class uses a configuration object to configure the	/// logging subsystem of an application.	///	/// The LoggingConfigurator sets up and connects formatters, channels 	/// and loggers. To accomplish its work, the LoggingConfigurator relies on the	/// functionality provided by the LoggingFactory und LoggingRegistry classes.	///	/// The LoggingConfigurator expects all configuration data to be under a root	/// property named "logging".	/// 	/// Configuring Formatters	///	/// A formatter is configured using the "logging.formatters" property. Every 	/// formatter has an internal name, which is only used for referring to it 	/// during configuration time. This name becomes part of the property name.	/// Every formatter has a mandatory "class" property, which specifies the actual	/// class implementing the formatter. Any other properties are passed on to	/// the formatter by calling its setProperty() method.	///	/// A typical formatter definition looks as follows:	///     logging.formatters.f1.class = PatternFormatter	///     logging.formatters.f1.pattern = %s: [%p] %t	///     logging.formatters.f1.times = UTC	///	/// Configuring Channels	///	/// A channel is configured using the "logging.channels" property. Like with	/// Formatters, every channel has an internal name, which is used during	/// configuration only. The name becomes part of the property name.	/// Every channel has a mandatory "class" property, which specifies the actual	/// class implementing the channel. Any other properties are passed on to	/// the formatter by calling its setProperty() method.	///	/// For convenience, the "formatter" property of a channel is treated	/// specifically. The "formatter" property can either be used to refer to	/// an already defined formatter, or it can be used to specify an "inline"	/// formatter definition. In either case, when a "formatter" property is	/// present, the channel is automatically "wrapped" in a FormattingChannel	/// object.	/// 	/// Similarly, a channel supports also a "pattern" property, which results	/// in the automatic instantiation of a FormattingChannel object with a	/// connected PatternFormatter.	/// 	/// Examples:	///     logging.channels.c1.class = ConsoleChannel	///     logging.channels.c1.formatter = f1	///     logging.channels.c2.class = FileChannel	///     logging.channels.c2.path = ${system.tempDir}/sample.log	///     logging.channels.c2.formatter.class = PatternFormatter	///     logging.channels.c2.formatter.pattern = %s: [%p] %t	///     logging.channels.c3.class = ConsoleChannel	///     logging.channels.c3.pattern = %s: [%p] %t	///	/// Configuring Loggers	///	/// A logger is configured using the "logging.loggers" property. Like with	/// channels and formatters, every logger has an internal name, which, however,	/// is only used to ensure the uniqueness of the property names. Note that this	/// name is different from the logger's full name, which is used to access	/// the logger at runtime.	/// Every logger except the root logger has a mandatory "name" property which	/// is used to specify the logger's full name.	/// Furthermore, a "channel" property is supported, which can either refer	/// to a named channel, or which can contain an inline channel definition.	///	/// Examples:	///     logging.loggers.root.channel = c1	///     logging.loggers.root.level = warning	///     logging.loggers.l1.name = logger1	///     logging.loggers.l1.channel.class = ConsoleChannel	///     logging.loggers.l1.channel.pattern = %s: [%p] %t	///     logging.loggers.l1.level = information{public:	LoggingConfigurator();		/// Creates the LoggingConfigurator.	~LoggingConfigurator();		/// Destroys the LoggingConfigurator.			void configure(AbstractConfiguration* pConfig);		/// Configures the logging subsystem based on		/// the given configuration.		///		/// A ConfigurationView can be used to pass only		/// a part of a larger configuration.private:	void configureFormatters(AbstractConfiguration* pConfig);	void configureChannels(AbstractConfiguration* pConfig);	void configureLoggers(AbstractConfiguration* pConfig);	Poco::Formatter* createFormatter(AbstractConfiguration* pConfig);	Poco::Channel* createChannel(AbstractConfiguration* pConfig);	void configureChannel(Channel* pChannel, AbstractConfiguration* pConfig);	void configureLogger(AbstractConfiguration* pConfig);		LoggingConfigurator(const LoggingConfigurator&);	LoggingConfigurator& operator = (const LoggingConfigurator&);};} } // namespace Poco::Util#endif // Util_LoggingConfigurator_INCLUDED

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -