manfred-exz
12/27/2017 - 2:09 AM

misc

#pragma once
#include "glog/logging.h"

class TagLog {
public:
	TagLog() = default;
	explicit TagLog(const std::string& tag) : default_tags(tag){}

	void AddDefaultTags(const std::string& tag) {
		if (default_tags.empty())
			default_tags = tag;
		else
			default_tags += "|" + tag;
	}

	std::basic_ostream<char> &Log(std::basic_ostream<char>& ostream = LOG(INFO)) const {
		return ostream << "[" + default_tags + "]";
	}
	
	std::basic_ostream<char> &Log(const std::string& extra_tag, std::basic_ostream<char>& ostream = LOG(INFO)) const {
		return ostream << "[" + default_tags + "|" + extra_tag + "]";
	}

private:
	std::string default_tags;
};