https://github.com/feelpp/feelpp
Raw File
Tip revision: da33f3d946161e95eeea2ceb4ba3183961cba8bf authored by Christophe Prud'homme on 20 June 2018, 02:54:00 UTC
up changelog v0.104.1 [ci skip]
Tip revision: da33f3d
logs.cpp
/* -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=cpp:et:sw=4:ts=4:sts=4

  This file is part of the FeelV library

  Author(s): Christophe Prud'homme <christophe.prudhomme@feelpp.org>
       Date: 2005-06-22

  Copyright (C) 2005,2006 EPFL
  Copyright (C) 2007 Université Joseph Fourier Grenoble 1

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 3.0 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
/**
   \file logs.cpp
   \author Christophe Prud'homme <christophe.prudhomme@feelpp.org>
   \date 2005-06-22
 */
#include <boost/log/functions.hpp>
#include <boost/limits.hpp>
#include <iostream>
#include <fstream>
#include <time.h>

#include "logs.hpp"

BOOST_DEFINE_LOG( app, "app" )
BOOST_DEFINE_LOG( dbg, "app.dbg" )
BOOST_DEFINE_LOG( err, "app.err" )
BOOST_DEFINE_LOG( warn, "app.warn" )
BOOST_DEFINE_LOG( info, "info" )


// *** Appenders
void write_to_cout( const std::string &, const std::string &msg )
{
    std::cout << msg;
}


// *** Modifiers
void prefix_time( const std::string &, std::string & msg )
{
    char time_buff[ 20];
    time_t t = time( 0 );
    tm details = *localtime( &t );
    sprintf( time_buff, "%02d:%02d:%02d  ", details.tm_hour, details.tm_min, details.tm_sec );
    msg = time_buff + msg;
}

void init_logs()
{
    using namespace boost::logging;

    // Modifiers for all:
    // [type_of_message] original_message append_enter_if_needed
    //add_modifier("*", &prefix_time, INT_MAX );
    add_modifier( "*", &append_enter );
    // Modifiers for app and its ascendants
    // <time> [type_of_message] original_message append_enter_if_needed
    add_modifier( "*", &prepend_prefix );
    // Modifiers for "app" only
    // <time> [Thread ID] [type_of_message] original_message append_enter_if_needed
    //add_modifier("app", &prepend_thread_id, 0);

    // Log Functions
    // all messages are written to cout
    //add_appender("*", write_to_cout);
    // "app*" messages are written to file as well
    add_appender( "app*", write_to_file( "report.txt" ) );
    // 'app' only and dbg messages are written to Output Debug Window as well

    flush_log_cache();
}



back to top