log4cplus接口封装

Log.h

#pragma once
#include <memory>

/// 记录追踪日志
#define LOG_TRACE(msg)   (Log::GetInstance()->Trace(msg));
/// 记录调试日志
#define LOG_DEBUG(msg)   (Log::GetInstance()->Debug(msg));
/// 记录信息日志
#define LOG_INFO(msg)    (Log::GetInstance()->Info(msg));
/// 记录告警日志
#define LOG_WARNING(msg) (Log::GetInstance()->Warning(msg));
/// 记录错误日志
#define LOG_ERROR(msg)   (Log::GetInstance()->Error(msg));
/// 记录致命日志
#define LOG_FATAL(msg)   (Log::GetInstance()->Fatal(msg));

using namespace std;
class Log
{
public:
	Log();
	~Log();
	static std::shared_ptr<Log> GetInstance();

	void Trace(string);
	void Debug(string);
	void Info(string);
	void Warning(string);
	void Error(string);
	void Fatal(string);
};

Log.cpp 

#include "Log.h"

#include <sstream>
#include <iostream>
#include <boost/filesystem.hpp>
#include <log4cplus/configurator.h>
#include <log4cplus/logger.h>
#include <log4cplus/log4cplus.h>
#include <log4cplus/consoleappender.h>

static shared_ptr<Log> g_singleInstance(new Log());

Log::Log()
{
    using namespace std;
    using namespace boost::filesystem;

    path p = current_path();
    stringstream url;
    url << p.string() << "/log.properties";

    cout << "url: " << url.str() << endl;
    log4cplus::PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT(url.str()));
}

Log::~Log()
{
    log4cplus::Logger::shutdown();
}

shared_ptr<Log> Log::GetInstance()
{
    return g_singleInstance;
}

void Log::Trace(string mes)
{
    LOG4CPLUS_TRACE(log4cplus::Logger::getRoot(), mes);
}

void Log::Debug(string mes)
{
    LOG4CPLUS_DEBUG(log4cplus::Logger::getRoot(), mes);
}

void Log::Info(string mes)
{
    LOG4CPLUS_INFO(log4cplus::Logger::getRoot(), mes);
}

void Log::Warning(string mes)
{
    LOG4CPLUS_WARN(log4cplus::Logger::getRoot(), mes);
}

void Log::Error(string mes)
{
    LOG4CPLUS_ERROR(log4cplus::Logger::getRoot(), mes);
}

void Log::Fatal(string mes)
{
    LOG4CPLUS_FATAL(log4cplus::Logger::getRoot(), mes);
}

log.properties 

#根Logger日志输出级别=TRACE,默认输出所有级别日志
log4cplus.rootLogger=TRACE,STDOUT,ALL_MSGS
#输出到控制台
log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
log4cplus.appender.STDOUT.layout.ConversionPattern=[%D{%Y-%m-%d %H:%M:%S %a}] %-5p %m %n
#输出到文件
log4cplus.appender.ALL_MSGS=log4cplus::RollingFileAppender
#日志名称
log4cplus.appender.ALL_MSGS.File=Log.log
#日志输出格式
log4cplus.appender.ALL_MSGS.layout=log4cplus::PatternLayout
#本地时间4位年2位月2位日 2位时:2位分:2位秒:6位毫秒 [线程ID] 5位日志级别 - 原始信息换行符
log4cplus.appender.ALL_MSGS.layout.ConversionPattern=[%D{%Y-%m-%d %H:%M:%S %a}] %-5p %m%n
#最大文件大小,当小于200kb的时候,默认为200kb,单位有(MB、KB)
log4cplus.appender.ALL_MSGS.MaxFileSize= 2MB
#最多文件个数
log4cplus.appender.ALL_MSGS.MaxBackupIndex=5

testconsole.cpp

#include <iostream>
#include "Log.h"

using namespace std;

int main()
{
	std::cout << "Test Console..................................." << endl;

	LOG_DEBUG("test");
	LOG_ERROR("test");
	LOG_TRACE("test");
	LOG_INFO("test");
	LOG_WARNING("test");
	LOG_FATAL("test");
}

调整log.properties中的logger,可控制日志输出 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值