fix8  version 1.4.0
Open Source C++ FIX Framework
FIX8::BCLogger Class Reference

A broadcast logger. More...

#include <logger.hpp>

Inheritance diagram for FIX8::BCLogger:
FIX8::Logger

Public Member Functions

 BCLogger (Poco::Net::DatagramSocket *sock, const LogFlags flags, const Levels levels, const std::string delim=" ", LogPositions positions=LogPositions())
 
 BCLogger (const std::string &ip, const unsigned port, const LogFlags flags, const Levels levels, const std::string delim=" ", LogPositions positions=LogPositions())
 
 operator void * ()
 
virtual ~BCLogger ()
 Dtor. More...
 
- Public Member Functions inherited from FIX8::Logger
 Logger (const LogFlags flags, const Levels levels=Levels(All), const std::string delim=" ", const LogPositions positions=LogPositions())
 
virtual ~Logger ()
 Dtor. More...
 
bool is_loggable (Level level) const
 
void set_levels (Levels levels)
 
void set_flags (LogFlags flags)
 
void set_delimiter (const std::string &delim)
 
void set_positions (const std::vector< int > &positions)
 
virtual std::ostream & get_stream () const
 
bool enqueue (const std::string &what, Level lev=Logger::Info, const char *fl=nullptr, const unsigned val=0)
 
bool send (const std::string &what, Level lev=Logger::Info, const char *fl=nullptr, const unsigned val=0)
 
void stop ()
 Stop the logging thread. More...
 
virtual bool rotate (bool force=false)
 
F8API int operator() ()
 
virtual F8API void process_logline (LogElement *le)
 
bool has_flag (const Flags flg) const
 
F8API char get_thread_code (thread_id_t tid)
 
F8API void purge_thread_codes ()
 Remove dead threads from the thread code cache. More...
 
virtual F8API void flush ()
 Flush the buffer. More...
 
f8_thread_cancellation_tokencancellation_token ()
 

Private Attributes

bool _init_ok
 

Additional Inherited Members

- Public Types inherited from FIX8::Logger
enum  Level {
  Debug, Info, Warn, Error,
  Fatal
}
 
enum  Flags {
  mstart, sstart, sequence, thread,
  timestamp, minitimestamp, direction, level,
  location, start_controls, append =start_controls, buffer,
  compress, pipe, broadcast, nolf,
  inbound, outbound, xml, num_flags
}
 
using LogFlags = ebitset< Flags >
 
using Levels = ebitset< Level >
 
using LogPositions = std::vector< int >
 
- Static Public Member Functions inherited from FIX8::Logger
static const Tickvalget_time_started ()
 
- Static Public Attributes inherited from FIX8::Logger
static const int Errors = bitsum(Warn,Error,Fatal)
 
static const int All = bitsum(Debug,Info,Warn,Error,Fatal)
 
static const int None = 0
 
static const int StdFlags = bitsum(sequence,thread,timestamp,level)
 
static const int rotation_default = 5
 
static const int max_rotation = 1024
 
static const std::vector< std::string > _bit_names
 string representation of logflags More...
 
static const std::vector< std::string > _level_names { "Debug", "Info ", "Warn ", "Error", "Fatal" }
 string representation of levels More...
 
- Protected Types inherited from FIX8::Logger
using ThreadCodes = std::map< thread_id_t, char >
 
using RevThreadCodes = std::map< char, thread_id_t >
 
- Protected Attributes inherited from FIX8::Logger
f8_mutex _mutex
 
f8_spin_lock _log_spl
 
LogFlags _flags
 
Levels _levels
 
std::string _delim
 
std::ostream * _ofs = nullptr
 
size_t _lines = 0
 
f8_thread_cancellation_token _stopping
 
f8_concurrent_queue< LogElement_msg_queue
 
unsigned _sequence = 0
 
unsigned _osequence = 0
 
ThreadCodes _thread_codes
 
RevThreadCodes _rev_thread_codes
 
LogPositions _positions
 
- Static Protected Attributes inherited from FIX8::Logger
static const Tickval _started { true }
 The time the entire logging system was start. More...
 

Detailed Description

A broadcast logger.

Definition at line 436 of file logger.hpp.

Constructor & Destructor Documentation

BCLogger::BCLogger ( Poco::Net::DatagramSocket *  sock,
const LogFlags  flags,
const Levels  levels,
const std::string  delim = " ",
LogPositions  positions = LogPositions() 
)

Ctor.

Parameters
sockudp socket
flagsebitset flags
levelsebitset levels
delimfield delimiter
positionsfield positions

Definition at line 341 of file logger.cpp.

References FIX8::Logger::_flags, FIX8::Logger::_ofs, and FIX8::Logger::broadcast.

343  : Logger(flags, levels, delim, positions), _init_ok(true)
344 {
345  _ofs = new bcostream(sock);
346  _flags |= broadcast;
347 }
Logger(const LogFlags flags, const Levels levels=Levels(All), const std::string delim=" ", const LogPositions positions=LogPositions())
Definition: logger.hpp:239
std::ostream * _ofs
Definition: logger.hpp:184
udp stream
Definition: logger.hpp:134
LogFlags _flags
Definition: logger.hpp:181
FIX8::BCLogger::BCLogger ( const std::string &  ip,
const unsigned  port,
const LogFlags  flags,
const Levels  levels,
const std::string  delim = " ",
LogPositions  positions = LogPositions() 
)

Ctor.

Parameters
ipip string
portport to use
flagsebitset flags
levelsebitset levels
delimfield delimiter
positionsfield positions
virtual FIX8::BCLogger::~BCLogger ( )
inlinevirtual

Dtor.

Definition at line 465 of file logger.hpp.

465 {}

Member Function Documentation

FIX8::BCLogger::operator void * ( )
inline

Check to see if a socket was successfully created.

Returns
non-zero if ok, 0 if not ok

Definition at line 462 of file logger.hpp.

462 { return _init_ok ? this : 0; }

Member Data Documentation

bool FIX8::BCLogger::_init_ok
private

Definition at line 438 of file logger.hpp.


The documentation for this class was generated from the following files: