add log4cplus
This commit is contained in:
127
libs/log4cplus/src/layout.cxx
Normal file
127
libs/log4cplus/src/layout.cxx
Normal file
@ -0,0 +1,127 @@
|
||||
// Module: Log4CPLUS
|
||||
// File: layout.cxx
|
||||
// Created: 6/2001
|
||||
// Author: Tad E. Smith
|
||||
//
|
||||
//
|
||||
// Copyright 2001-2009 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/layout.h>
|
||||
#include <log4cplus/helpers/stringhelper.h>
|
||||
#include <log4cplus/helpers/timehelper.h>
|
||||
#include <log4cplus/spi/loggingevent.h>
|
||||
#include <iomanip>
|
||||
|
||||
|
||||
namespace log4cplus
|
||||
{
|
||||
|
||||
|
||||
extern helpers::Time TTCCLayout_time_base;
|
||||
|
||||
|
||||
void
|
||||
initializeLayout ()
|
||||
{
|
||||
TTCCLayout_time_base = helpers::Time::gettimeofday ();
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// log4cplus::SimpleLayout public methods
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void
|
||||
SimpleLayout::formatAndAppend(log4cplus::tostream& output,
|
||||
const log4cplus::spi::InternalLoggingEvent& event)
|
||||
{
|
||||
output << llmCache.toString(event.getLogLevel())
|
||||
<< LOG4CPLUS_TEXT(" - ")
|
||||
<< event.getMessage()
|
||||
<< LOG4CPLUS_TEXT("\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// log4cplus::TTCCLayout ctors and dtor
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
TTCCLayout::TTCCLayout(bool use_gmtime_)
|
||||
: dateFormat(),
|
||||
use_gmtime(use_gmtime_)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
TTCCLayout::TTCCLayout(const log4cplus::helpers::Properties& properties)
|
||||
: Layout(properties),
|
||||
dateFormat(),
|
||||
use_gmtime(false)
|
||||
{
|
||||
if(properties.exists( LOG4CPLUS_TEXT("DateFormat") )) {
|
||||
dateFormat = properties.getProperty( LOG4CPLUS_TEXT("DateFormat") );
|
||||
}
|
||||
|
||||
tstring tmp = properties.getProperty( LOG4CPLUS_TEXT("Use_gmtime") );
|
||||
use_gmtime = (helpers::toLower(tmp) == LOG4CPLUS_TEXT("true"));
|
||||
}
|
||||
|
||||
|
||||
TTCCLayout::~TTCCLayout()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// log4cplus::TTCCLayout public methods
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void
|
||||
TTCCLayout::formatAndAppend(log4cplus::tostream& output,
|
||||
const log4cplus::spi::InternalLoggingEvent& event)
|
||||
{
|
||||
if (dateFormat.empty ())
|
||||
{
|
||||
helpers::Time const rel_time = event.getTimestamp () - TTCCLayout_time_base;
|
||||
tchar const old_fill = output.fill ();
|
||||
time_t const sec = rel_time.sec ();
|
||||
|
||||
if (sec != 0)
|
||||
output << sec << std::setfill (LOG4CPLUS_TEXT ('0'))
|
||||
<< std::setw (3);
|
||||
|
||||
output << rel_time.usec () / 1000;
|
||||
output.fill (old_fill);
|
||||
}
|
||||
else
|
||||
output << event.getTimestamp().getFormattedTime(dateFormat, use_gmtime);
|
||||
|
||||
output << LOG4CPLUS_TEXT(" [")
|
||||
<< event.getThread()
|
||||
<< LOG4CPLUS_TEXT("] ")
|
||||
<< llmCache.toString(event.getLogLevel())
|
||||
<< LOG4CPLUS_TEXT(" ")
|
||||
<< event.getLoggerName()
|
||||
<< LOG4CPLUS_TEXT(" <")
|
||||
<< event.getNDC()
|
||||
<< LOG4CPLUS_TEXT("> - ")
|
||||
<< event.getMessage()
|
||||
<< LOG4CPLUS_TEXT("\n");
|
||||
}
|
||||
|
||||
|
||||
} // namespace log4cplus
|
Reference in New Issue
Block a user