diff options
Diffstat (limited to 'SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/clogger.cxx')
-rw-r--r-- | SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/clogger.cxx | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/clogger.cxx b/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/clogger.cxx new file mode 100644 index 000000000..f8578ffad --- /dev/null +++ b/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/src/clogger.cxx @@ -0,0 +1,190 @@ +// Module: Log4CPLUS +// File: clogger.cxx +// Created: 01/2011 +// Author: Jens Rehsack +// +// +// Copyright 2011 Jens Rehsack & 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/logger.h> +#include <log4cplus/clogger.h> +#include <log4cplus/appender.h> +#include <log4cplus/hierarchy.h> +#include <log4cplus/helpers/loglog.h> +#include <log4cplus/spi/loggerimpl.h> +#include <log4cplus/configurator.h> +#include <log4cplus/streams.h> +#include <log4cplus/helpers/snprintf.h> + +#include <cerrno> +#include <cstdio> +#include <cstdarg> +#include <cstring> + +#include <sstream> + +using namespace log4cplus; +using namespace log4cplus::helpers; + +LOG4CPLUS_EXPORT int +log4cplus_file_configure(const log4cplus_char_t *pathname) +{ + if( !pathname ) + return EINVAL; + + try + { + PropertyConfigurator::doConfigure( pathname ); + } + catch(std::exception const &) + { + return -1; + } + + return 0; +} + +LOG4CPLUS_EXPORT int +log4cplus_str_configure(const log4cplus_char_t *config) +{ + if( !config ) + return EINVAL; + + try + { + tstring s(config); + tistringstream iss(s); + PropertyConfigurator pc(iss); + pc.configure(); + } + catch(std::exception const &) + { + return -1; + } + + return 0; +} + +LOG4CPLUS_EXPORT int +log4cplus_basic_configure(void) +{ + try + { + BasicConfigurator::doConfigure(); + } + catch(std::exception const &) + { + return -1; + } + + return 0; +} + +LOG4CPLUS_EXPORT void +log4cplus_shutdown(void) +{ + Logger::shutdown(); +} + +LOG4CPLUS_EXPORT int +log4cplus_logger_exists(const log4cplus_char_t *name) +{ + int retval = false; + + try + { + retval = Logger::exists(name); + } + catch(std::exception const &) + { + // Fall through. + } + + return retval; +} + +LOG4CPLUS_EXPORT int +log4cplus_logger_is_enabled_for(const log4cplus_char_t *name, loglevel_t ll) +{ + int retval = false; + + try + { + Logger logger = name ? Logger::getInstance(name) : Logger::getRoot(); + retval = logger.isEnabledFor(ll); + } + catch(std::exception const &) + { + // Fall through. + } + + return retval; +} + +LOG4CPLUS_EXPORT int +log4cplus_logger_log(const log4cplus_char_t *name, loglevel_t ll, + const log4cplus_char_t *msgfmt, ...) +{ + int retval = -1; + + try + { + Logger logger = name ? Logger::getInstance(name) : Logger::getRoot(); + + if( logger.isEnabledFor(ll) ) + { + std::va_list ap; + va_start(ap, msgfmt); + snprintf_buf buf; + const tchar * msg = buf.print_va_list(msgfmt, ap); + va_end(ap); + logger.forcedLog(ll, msg); + } + + retval = 0; + } + catch(std::exception const &) + { + // Fall through. + } + + return retval; +} + +LOG4CPLUS_EXPORT int +log4cplus_logger_force_log(const log4cplus_char_t *name, loglevel_t ll, const log4cplus_char_t *msgfmt, ...) +{ + int retval = -1; + + try + { + Logger logger = name ? Logger::getInstance(name) : Logger::getRoot(); + + std::va_list ap; + va_start(ap, msgfmt); + snprintf_buf buf; + const tchar * msg = buf.print_va_list(msgfmt, ap); + va_end(ap); + logger.forcedLog(ll, msg); + + retval = 0; + } + catch(std::exception const &) + { + // Fall through. + } + + return retval; +} |