log4cplus的库版本在windows下的使用是必须和vs版本对应的,所以这边吧编译过程都省略吧!
直接上代码吧!
MyLogger.h
#pragma once
#include<iostream>
#include<string>
#include <log4Cplus/logger.h>
#include <log4Cplus/configurator.h>
#include <log4Cplus/layout.h>
#include <log4Cplus/loggingmacros.h>
#include <log4Cplus/helpers/stringhelper.h>
#define MY_LOG_FILE "./logconfig.properities"
using namespace std;
using namespace log4cplus;
using namespace log4cplus::helpers;
class MyLogger
{
public:
static MyLogger* getInstance();
Logger logger;
private:
MyLogger();
~MyLogger();
static MyLogger* my_logger;
};
MyLogger.cpp
#include "stdafx.h"
#include "MyLogger.h"
MyLogger* MyLogger::my_logger = NULL;
MyLogger::MyLogger()
{
log4cplus::initialize();
PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT(MY_LOG_FILE));
logger = Logger::getRoot();
}
MyLogger::~MyLogger()
{
if (my_logger)
{
delete my_logger;
my_logger = NULL;
}
}
MyLogger* MyLogger::getInstance()
{
if (my_logger == NULL)
{
my_logger = new MyLogger;
}
return my_logger;
}
使用方法
#include "MyLogger.h"
#pragma comment(lib,"log4cplusU.lib")
MyLogger * pMyLogger = NULL;
pMyLogger = MyLogger::getInstance();
LOG4CPLUS_TRACE(pMyLogger->logger, "WinMain");
配置文件如下
log4cplus.rootLogger=TRACE,APPNDER_FILE
#设置日志追加到文件尾
log4cplus.appender.APPNDER_FILE=log4cplus::RollingFileAppender
log4cplus.appender.APPNDER_FILE.MaxFileSize=100MB
log4cplus.appender.APPNDER_FILE.MaxBackupIndex=1
#设置输出日志路径
log4cplus.appender.APPNDER_FILE.File= Mylogger.log
log4cplus.appender.APPNDER_FILE.layout=log4cplus::PatternLayout
#设置日志打印格式
log4cplus.appender.APPNDER_FILE.layout.ConversionPattern=%D:%d{%q} %p %t %l %m %n
#设置日志级别范围
log4cplus.appender.APPNDER_FILE.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.APPNDER_FILE.filters.1.LogLevelMin=DEBUG
log4cplus.appender.APPNDER_FILE.filters.1.LogLevelMax=FATAL
log4cplus.appender.APPNDER_FILE.filters.1.AcceptOnMatch=true
log4cplus.appender.APPNDER_FILE.filters.2=log4cplus::spi::DenyAllFilter