1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
/*
* --- GSMP-COPYRIGHT-NOTE-BEGIN ---
*
* This copyright note is auto-generated by ./scripts/Create-CopyPatch.
* Please add additional copyright information _after_ the line containing
* the GSMP-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
* the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
*
* GSMP: utility/src/Logger.cc
* General Sound Manipulation Program is Copyright (C) 2000 - 2004
* Valentin Ziegler and René Rebe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2. A copy of the GNU General
* Public License can be found in the file LICENSE.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANT-
* ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* --- GSMP-COPYRIGHT-NOTE-END ---
*/
#include "Logger.hh"
#include <time.h>
#include <iostream>
namespace Utility
{ // Exports
bool basic_log_device_initialized = false;
extern BasicLogDevice::timestamp_t BasicLogDevice::current;
extern BasicLogDevice::direction BasicLogDevice::last_direction;
extern BasicLogDevice* BasicLogDevice::last_device;
std::ostream& wrap_cout = std::cout;
std::ostream& wrap_cerr = std::cerr;
}
using namespace Utility;
BasicLogDevice::BasicLogDevice ()
{
if (!basic_log_device_initialized)
{
current = true;
last_device = this;
basic_log_device_initialized = true;
}
}
void BasicLogDevice::PrintPrelude ()
{
time_t t;
time (&t);
(*log_file) << "log opened " << ctime(&t) << std::endl;
}
void BasicLogDevice::PrintTimeStamp (std::ostream* str)
{
(*str) << "[@t" << current++ << "] ";
}
void BasicLogDevice::AllocateSplitStreams ()
{
split_buffer_cout = new SplitStreamBuffer (std::cout, *log_file);
split_buffer_cerr = new SplitStreamBuffer (std::cerr, *log_file);
split_stream_cout = new std::ostream (split_buffer_cout);
split_stream_cerr = new std::ostream (split_buffer_cerr);
}
void BasicLogDevice::DeallocateSplitStreams ()
{
delete split_stream_cout;
delete split_stream_cerr;
delete split_buffer_cout;
delete split_buffer_cerr;
}
|