You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
spdlog/include/c11log/sinks/stdout_sinks.h

32 lines
616 B
C

#pragma once
12 years ago
#include <iostream>
12 years ago
#include <mutex>
#include <memory>
12 years ago
#include "base_sink.h"
12 years ago
namespace c11log {
namespace sinks {
class ostream_sink: public base_sink {
public:
12 years ago
explicit ostream_sink(std::ostream& os):_ostream(os) {}
ostream_sink(const ostream_sink&) = delete;
ostream_sink& operator=(const ostream_sink&) = delete;
virtual ~ostream_sink() = default;
12 years ago
protected:
virtual void _sink_it(const std::string& msg) override {
12 years ago
std::lock_guard<std::mutex> lock(_mutex);
12 years ago
_ostream << msg;
}
12 years ago
12 years ago
std::ostream& _ostream;
12 years ago
std::mutex _mutex;
};
12 years ago
12 years ago
12 years ago
}
}