You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
4.6 KiB
187 lines
4.6 KiB
// Module: Log4CPLUS
|
|
// File: factory.cxx
|
|
// Created: 2/2002
|
|
// Author: Tad E. Smith
|
|
//
|
|
//
|
|
// Copyright 2002-2010 Tad E. Smith
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include <log4cplus/spi/factory.h>
|
|
#include <log4cplus/spi/loggerfactory.h>
|
|
#include <log4cplus/helpers/loglog.h>
|
|
#include <log4cplus/helpers/thread-config.h>
|
|
#include <log4cplus/helpers/property.h>
|
|
#include <log4cplus/asyncappender.h>
|
|
#include <log4cplus/consoleappender.h>
|
|
#include <log4cplus/fileappender.h>
|
|
#include <log4cplus/nteventlogappender.h>
|
|
#include <log4cplus/nullappender.h>
|
|
#include <log4cplus/socketappender.h>
|
|
#include <log4cplus/syslogappender.h>
|
|
#include <log4cplus/win32debugappender.h>
|
|
#include <log4cplus/win32consoleappender.h>
|
|
#include <log4cplus/log4judpappender.h>
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// LOCAL file class definitions
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
namespace log4cplus {
|
|
|
|
namespace spi {
|
|
|
|
BaseFactory::~BaseFactory()
|
|
{ }
|
|
|
|
|
|
AppenderFactory::AppenderFactory()
|
|
{ }
|
|
|
|
AppenderFactory::~AppenderFactory()
|
|
{ }
|
|
|
|
|
|
LayoutFactory::LayoutFactory()
|
|
{ }
|
|
|
|
LayoutFactory::~LayoutFactory()
|
|
{ }
|
|
|
|
|
|
FilterFactory::FilterFactory()
|
|
{ }
|
|
|
|
FilterFactory::~FilterFactory()
|
|
{ }
|
|
|
|
|
|
LocaleFactory::LocaleFactory()
|
|
{ }
|
|
|
|
LocaleFactory::~LocaleFactory()
|
|
{ }
|
|
|
|
|
|
LoggerFactory::~LoggerFactory()
|
|
{ }
|
|
|
|
|
|
namespace
|
|
{
|
|
|
|
class GlobalLocale
|
|
: public LocalFactoryBase<LocaleFactory>
|
|
{
|
|
public:
|
|
GlobalLocale (tchar const * n)
|
|
: LocalFactoryBase<LocaleFactory> (n)
|
|
{ }
|
|
|
|
virtual
|
|
ProductPtr
|
|
createObject (const log4cplus::helpers::Properties &)
|
|
{
|
|
return std::locale ();
|
|
}
|
|
};
|
|
|
|
|
|
class UserLocale
|
|
: public LocalFactoryBase<LocaleFactory>
|
|
{
|
|
public:
|
|
UserLocale (tchar const * n)
|
|
: LocalFactoryBase<LocaleFactory> (n)
|
|
{ }
|
|
|
|
virtual
|
|
ProductPtr
|
|
createObject (const log4cplus::helpers::Properties &)
|
|
{
|
|
return std::locale ("");
|
|
}
|
|
};
|
|
|
|
|
|
class ClassicLocale
|
|
: public LocalFactoryBase<LocaleFactory>
|
|
{
|
|
public:
|
|
ClassicLocale (tchar const * n)
|
|
: LocalFactoryBase<LocaleFactory> (n)
|
|
{ }
|
|
|
|
virtual
|
|
ProductPtr
|
|
createObject (const log4cplus::helpers::Properties &)
|
|
{
|
|
return std::locale::classic ();
|
|
}
|
|
};
|
|
|
|
|
|
} // namespace
|
|
|
|
|
|
|
|
|
|
} // namespace spi
|
|
|
|
|
|
void initializeFactoryRegistry()
|
|
{
|
|
spi::AppenderFactoryRegistry& reg = spi::getAppenderFactoryRegistry();
|
|
LOG4CPLUS_REG_APPENDER (reg, ConsoleAppender);
|
|
LOG4CPLUS_REG_APPENDER (reg, NullAppender);
|
|
LOG4CPLUS_REG_APPENDER (reg, FileAppender);
|
|
LOG4CPLUS_REG_APPENDER (reg, RollingFileAppender);
|
|
LOG4CPLUS_REG_APPENDER (reg, DailyRollingFileAppender);
|
|
LOG4CPLUS_REG_APPENDER (reg, SocketAppender);
|
|
#if defined(_WIN32)
|
|
# if defined(LOG4CPLUS_HAVE_NT_EVENT_LOG)
|
|
LOG4CPLUS_REG_APPENDER (reg, NTEventLogAppender);
|
|
# endif
|
|
# if defined(LOG4CPLUS_HAVE_WIN32_CONSOLE)
|
|
LOG4CPLUS_REG_APPENDER (reg, Win32ConsoleAppender);
|
|
# endif
|
|
LOG4CPLUS_REG_APPENDER (reg, Win32DebugAppender);
|
|
#endif
|
|
LOG4CPLUS_REG_APPENDER (reg, SysLogAppender);
|
|
#ifndef LOG4CPLUS_SINGLE_THREADED
|
|
LOG4CPLUS_REG_APPENDER (reg, AsyncAppender);
|
|
#endif
|
|
LOG4CPLUS_REG_APPENDER (reg, Log4jUdpAppender);
|
|
|
|
spi::LayoutFactoryRegistry& reg2 = spi::getLayoutFactoryRegistry();
|
|
LOG4CPLUS_REG_LAYOUT (reg2, SimpleLayout);
|
|
LOG4CPLUS_REG_LAYOUT (reg2, TTCCLayout);
|
|
LOG4CPLUS_REG_LAYOUT (reg2, PatternLayout);
|
|
|
|
spi::FilterFactoryRegistry& reg3 = spi::getFilterFactoryRegistry();
|
|
LOG4CPLUS_REG_FILTER (reg3, DenyAllFilter);
|
|
LOG4CPLUS_REG_FILTER (reg3, LogLevelMatchFilter);
|
|
LOG4CPLUS_REG_FILTER (reg3, LogLevelRangeFilter);
|
|
LOG4CPLUS_REG_FILTER (reg3, StringMatchFilter);
|
|
|
|
spi::LocaleFactoryRegistry& reg4 = spi::getLocaleFactoryRegistry();
|
|
LOG4CPLUS_REG_LOCALE (reg4, LOG4CPLUS_TEXT("GLOBAL"), spi::GlobalLocale);
|
|
LOG4CPLUS_REG_LOCALE (reg4, LOG4CPLUS_TEXT("DEFAULT"), spi::GlobalLocale);
|
|
LOG4CPLUS_REG_LOCALE (reg4, LOG4CPLUS_TEXT("USER"), spi::UserLocale);
|
|
LOG4CPLUS_REG_LOCALE (reg4, LOG4CPLUS_TEXT("CLASSIC"), spi::ClassicLocale);
|
|
}
|
|
|
|
|
|
} // namespace log4cplus
|