⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event_logger.hpp

📁 j2me is based on j2mepolish, client & server for mobile application.
💻 HPP
字号:

//         Copyright E骾n O'Callaghan 2007 - 2008.
// Distributed under the Boost Software License, Version 1.0.
//    (See accompanying file LICENSE_1_0.txt or copy at
//          http://www.boost.org/LICENSE_1_0.txt)

#pragma once

#include "StdAfx.hpp"
#include <boost/date_time/posix_time/posix_time.hpp>

struct event_logger_impl;
class event_type;

class event_logger
{
public:	
	enum event_level { dev, debug, info, warning, critical, fatal, none };

	event_logger();
	void init();

	boost::signals::connection attach(boost::function<void (boost::shared_ptr<event_type>)> fn);
	void dettach(const boost::signals::connection& c);

	void post(boost::shared_ptr<event_type> e);
	void post(event_type* e);

	static std::wstring event_level_to_str(event_level);
	
private:
	boost::shared_ptr<event_logger_impl> pimpl;	
};

#ifndef EVENT_LOGGER_IMPL_UNIT
static event_logger logger;
#endif

class event_type
{
public:
	event_type(event_logger::event_level l, std::wstring m) :
		level_(l),
		time_stamp_(boost::posix_time::second_clock::universal_time()),
		msg_(m)
	{}

	template<typename T>
	event_type(event_logger::event_level l, T m) :
		level_(l),
		time_stamp_(boost::posix_time::second_clock::universal_time()),
		msg_(aux::to_wstr_shim(m))
	{}

	virtual ~event_type() 
	{}

	event_logger::event_level level() { return level_; }
	boost::posix_time::ptime time_stamp() { return time_stamp_; }
	std::wstring msg() { return msg_; }
	
private:	
	event_logger::event_level level_;
	boost::posix_time::ptime time_stamp_;
	std::wstring msg_;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -