📄 event_logger.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 + -