8506e731a2
All logs and log entries are now disabled by default, unless explicitly enabled by an 'enabled' property. This works much more intuitively with the GUI dialog.
67 lines
1.2 KiB
C++
67 lines
1.2 KiB
C++
// logger.hxx - log properties.
|
|
// Written by David Megginson, started 2002.
|
|
//
|
|
// This file is in the Public Domain, and comes with no warranty.
|
|
|
|
#ifndef __LOGGER_HXX
|
|
#define __LOGGER_HXX 1
|
|
|
|
#ifndef __cplusplus
|
|
# error This library requires C++
|
|
#endif
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include <config.h>
|
|
#endif
|
|
|
|
#include <iostream>
|
|
#include <vector>
|
|
|
|
#include <simgear/compiler.h>
|
|
#include <simgear/debug/logstream.hxx>
|
|
#include <simgear/misc/exception.hxx>
|
|
#include <simgear/misc/props.hxx>
|
|
|
|
SG_USING_STD(ostream);
|
|
SG_USING_STD(vector);
|
|
|
|
#include "fgfs.hxx"
|
|
|
|
|
|
/**
|
|
* Log any property values to any number of CSV files.
|
|
*/
|
|
class FGLogger : public FGSubsystem
|
|
{
|
|
public:
|
|
|
|
FGLogger ();
|
|
virtual ~FGLogger ();
|
|
|
|
// Implementation of FGSubsystem
|
|
virtual void init ();
|
|
virtual void reinit ();
|
|
virtual void bind ();
|
|
virtual void unbind ();
|
|
virtual void update (double dt);
|
|
|
|
private:
|
|
|
|
/**
|
|
* A single instance of a log file (the logger can contain many).
|
|
*/
|
|
struct Log {
|
|
Log ();
|
|
virtual ~Log ();
|
|
vector<SGPropertyNode *> nodes;
|
|
ostream * output;
|
|
long interval_ms;
|
|
double last_time_ms;
|
|
char delimiter;
|
|
};
|
|
|
|
vector<Log> _logs;
|
|
|
|
};
|
|
|
|
#endif // __LOGGER_HXX
|