12#ifndef RDLOG_H_29JUNE2005
13#define RDLOG_H_29JUNE2005
17#include <boost/iostreams/tee.hpp>
18#include <boost/iostreams/stream.hpp>
27typedef boost::iostreams::tee_device<std::ostream, std::ostream>
RDTee;
40 rdLogger(std::ostream *dest,
bool owner =
false)
60 auto s =
new std::ofstream(filename);
67 void SetTee(
const std::string &filename) {
return SetTee(filename.c_str()); }
109#define BOOST_LOG(__arg__) \
110 if ((__arg__) && (__arg__->dp_dest) && (__arg__->df_enabled)) \
111 RDLog::toStream((__arg__->teestream) ? *(__arg__->teestream) \
112 : *(__arg__->dp_dest))
114using RDLogger = std::shared_ptr<boost::logging::rdLogger>;
124#define BOOST_LOG_NO_LIB
125#include <boost/log/log.hpp>
148 std::uint64_t d_origState = 0;
std::shared_ptr< boost::logging::rdLogger > RDLogger
RDKIT_RDGENERAL_EXPORT RDLogger rdDebugLog
RDKIT_RDGENERAL_EXPORT RDLogger rdStatusLog
#define BOOST_LOG(__arg__)
RDKIT_RDGENERAL_EXPORT RDLogger rdAppLog
RDKIT_RDGENERAL_EXPORT RDLogger rdInfoLog
RDKIT_RDGENERAL_EXPORT RDLogger rdWarningLog
RDKIT_RDGENERAL_EXPORT RDLogger rdErrorLog
LogStateSetter(RDLoggerList toEnable)
std::ofstream * dp_teeHelperStream
void SetTee(const char *filename)
Sets a filename to tee the output to.
rdLogger(std::ostream *dest, bool owner=false)
void ClearTee()
Remove our tee if it's set.
void SetTee(std::ostream &stream)
Sets a stream to tee the output to.
void SetTee(const std::string &filename)
Sets a filename to tee the output to.
#define RDKIT_RDGENERAL_EXPORT
RDKIT_RDGENERAL_EXPORT std::ostream & toStream(std::ostream &)
RDKIT_RDGENERAL_EXPORT void InitLogs()
std::vector< RDLogger > RDLoggerList
void deprecationWarning(const std::string &message)
RDKIT_RDGENERAL_EXPORT std::string log_status()
RDKIT_RDGENERAL_EXPORT void enable_logs(const char *arg)
boost::iostreams::tee_device< std::ostream, std::ostream > RDTee
RDKIT_RDGENERAL_EXPORT void disable_logs(const char *arg)
boost::iostreams::stream< RDTee > RDTeeStream