#include <boost/log/common.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/console.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/attributes/timer.hpp>
#include <boost/log/attributes/named_scope.hpp>
#include <boost/log/sources/logger.hpp>
#include <boost/log/support/date_time.hpp>

enum severity_level
{
    normal,
    notification,
    warning,
    error,
    critical
};


struct other_log_lib {
    other_log_lib(const char* name, int line)
	: name_(name), line_(line), level_(normal) {}
    const char* name_;
	int line_;
	severity_level level_;
	// ...
};

namespace logging = boost::log;
namespace sinks = boost::log::sinks;
namespace attrs = boost::log::attributes;
namespace src = boost::log::sources;
namespace expr = boost::log::expressions;
namespace keywords = boost::log::keywords;

int main(int, char*[])
{
	other_log_lib log_entry(__FILE__, __LINE__);
	
	src::severity_logger< severity_level > slg;

	BOOST_LOG_SEV(slg, normal) << "Lets's go";
		
	if(logging::record record = slg.open_record()) {
			
		record.attribute_values().insert("Severity",
			logging::attributes::make_attribute_value(log_entry.level_)
		);
		record.attribute_values().insert("Scope", // how to insert correct???
			logging::attributes::make_attribute_value(
					attrs::named_scope_entry(
					"Scope",
					log_entry.name_, log_entry.line_
				)
			)
		);
		record.attribute_values().insert("Message",
			logging::attributes::make_attribute_value(std::string("Message from other log lib"))
		);

		slg.push_record(boost::move(record));
	}
	
    BOOST_LOG_SEV(slg, normal) << "That's all";

    return 0;
}
