/usr/include/quickfix/FileLog.h is in libquickfix-dev 1.13.3+dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | /* -*- C++ -*- */
/****************************************************************************
** Copyright (c) quickfixengine.org All rights reserved.
**
** This file is part of the QuickFIX FIX Engine
**
** This file may be distributed under the terms of the quickfixengine.org
** license as defined by quickfixengine.org and appearing in the file
** LICENSE included in the packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.quickfixengine.org/LICENSE for licensing information.
**
** Contact ask@quickfixengine.org if any conditions of this licensing are
** not clear to you.
**
****************************************************************************/
#ifndef FIX_FILELOG_H
#define FIX_FILELOG_H
#ifdef _MSC_VER
#pragma warning( disable : 4503 4355 4786 4290 )
#endif
#include "Log.h"
#include "SessionSettings.h"
#include <fstream>
namespace FIX
{
/**
* Creates a file based implementation of Log
*
* This stores all log events into flat files
*/
class FileLogFactory : public LogFactory
{
public:
FileLogFactory( const SessionSettings& settings )
: m_settings( settings ), m_globalLog(0), m_globalLogCount(0) {};
FileLogFactory( const std::string& path )
: m_path( path ), m_backupPath( path ), m_globalLog(0), m_globalLogCount(0) {};
FileLogFactory( const std::string& path, const std::string& backupPath )
: m_path( path ), m_backupPath( backupPath ), m_globalLog(0), m_globalLogCount(0) {};
public:
Log* create();
Log* create( const SessionID& );
void destroy( Log* log );
private:
std::string m_path;
std::string m_backupPath;
SessionSettings m_settings;
Log* m_globalLog;
int m_globalLogCount;
};
/**
* File based implementation of Log
*
* Two files are created by this implementation. One for messages,
* and one for events.
*
*/
class FileLog : public Log
{
public:
FileLog( const std::string& path );
FileLog( const std::string& path, const SessionID& sessionID );
FileLog( const std::string& path, const std::string& backupPath, const SessionID& sessionID );
virtual ~FileLog();
void clear();
void backup();
void onIncoming( const std::string& value )
{ m_messages << UtcTimeStampConvertor::convert(UtcTimeStamp(), m_millisecondsInTimeStamp) << " : " << value << std::endl; }
void onOutgoing( const std::string& value )
{ m_messages << UtcTimeStampConvertor::convert(UtcTimeStamp(), m_millisecondsInTimeStamp) << " : " << value << std::endl; }
void onEvent( const std::string& value )
{
UtcTimeStamp now;
m_event << UtcTimeStampConvertor::convert( now, m_millisecondsInTimeStamp )
<< " : " << value << std::endl;
}
bool getMillisecondsInTimeStamp() const
{ return m_millisecondsInTimeStamp; }
void setMillisecondsInTimeStamp ( bool value )
{ m_millisecondsInTimeStamp = value; }
private:
std::string generatePrefix( const SessionID& sessionID );
void init( std::string path, std::string backupPath, const std::string& prefix );
std::ofstream m_messages;
std::ofstream m_event;
std::string m_messagesFileName;
std::string m_eventFileName;
std::string m_fullPrefix;
std::string m_fullBackupPrefix;
bool m_millisecondsInTimeStamp;
};
}
#endif //FIX_LOG_H
|