#include "stdafx.h"

#include <sstream>

class AB{
public:
    void do_test()
    {
        //LOG_DEBUG("abc");
        //LOG4CPLUS_DEBUG(_Logger(), __if_exists(this){'[' << this << ']' <<} L'[' <<  __FUNCTION__   << "] " << "abc" );

        do
        {
            if((_Logger()).isEnabledFor(log4cplus::DEBUG_LOG_LEVEL))
            {
                log4cplus::tostringstream _log4cplus_buf;//tostringstream
                _log4cplus_buf << __if_exists(this){'[' << this << ']' <<} L'[' <<   __FUNCTION__   << "] " << "abc";
                (_Logger()).forcedLog(log4cplus::DEBUG_LOG_LEVEL, _log4cplus_buf.str(), "e:\\work\\testlog4cplus\\main.cpp", 10);
            }
        } while (0);

    }

   // LOG_CLS_DEC();

    // LOG_CLS_DEC_EX( log4cplus_tool::GetModuleLoggerName() + LOG4CPLUS_TEXT('.') + LOG4CPLUS_C_STR_TO_TSTRING(__FUNCTION__) )

    static log4cplus::Logger & _Logger()
    {
        log4cplus::tstring s = log4cplus_tool::GetModuleLoggerName() + L'.' + log4cplus::helpers::towstring( __FUNCTION__  );
        size_t nPos = s.find(TCHAR(':'));
        s = s.substr(0, nPos);
        static log4cplus::Logger& s_logger = log4cplus::Logger::getInstance( s );
        return s_logger;
    };

};

void InitLog4cplusCfg()
{
    TCHAR szPath[MAX_PATH] = _T("");
    GetModuleFileName(NULL, szPath, MAX_PATH);
    ATLPath::Combine(szPath, szPath, _T("..\\log4cplus_test.cfg"));
    //LOG_INIT_EX(szPath);

    log4cplus::PropertyConfigurator::doConfigure(szPath);
}

int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow)
{   
    InitLog4cplusCfg();

    AB ab;
    ab.do_test();
    return 1;
}

测试最新的log4cplus1.1.2版的更多相关文章

  1. App测试流程及测试点(个人整理版)

    1 APP测试基本流程 1.1流程图 1.2测试周期测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向主 ...

  2. 格式工厂 v4.0.0 最新去广告绿色纯净版

    最好用的多媒体格式转换利器:格式工厂现已更新至v4.0,此次更新加入最新的HEVC(H265)编码,MP4,MKV的压缩比大幅度提高!格式工厂,轻松转换一切你想要的格式!利器在手,转换不愁! 格式工厂 ...

  3. 最新win7系统安全稳定版

    最新win7系统32位安全稳定版 V2016年2月,具有更安全.更稳定.更人性化等特点.集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上萝卜独有人性化的设计.是电脑城.个人.公 ...

  4. MySQL 5.7.33 超级详细下载安装配置测试教程(可以安装成功版)

    目录 1.引言及注意事项 (1) 引言: (2) 注意: 2.MySQL下载 3.配置环境变量 4.配置my.ini文件(重点) 5.安装MySQL(重点) 6.设置密码 7.测试MySQL是否安装成 ...

  5. 私有云android客户端2.1.2最新版本(ownCloud简体中文优化版)

    通过安装Ubuntu16.04+LAMP+ownCloud9.1+SSL建立私有云,下载ownCloud android客户端最新源码,针对国际语言简体中文化,修改部分代码,并进行补充.优化,编译生成 ...

  6. 谷歌排名影响因素最新研究(SEM RUSH版)

    谷歌排名影响因素,关于这块的研究在国外有很多,一全老师(www.yiquanseo.com)以前也专门翻译整合过两篇,分别是Backlinko的<谷歌排名影响因素权威报告(研究了数百万谷歌网站得 ...

  7. 搜狗拼音输入法 V9.1.0.2589 最新去广告精简优化版

    搜狗拼音输入法9.0 正式版例行发布,最新版字母代号b,详细版本号为v9.1.0.2589:搜狗拼音输入法是电脑装机必备软件,版本有传统版和智慧版之分,其打字超准.词库超大.速度飞快.外观漂亮,因此使 ...

  8. 逐浪CMS最新V8.1.6 Beta版安装部署操作

    首先要获得内部最新版本的CMS,官网有公开发布版本,但不属于内部最新的,内部最新的CMS系统是不断的有功能的迭代更新. 操作系统建议是win10.1.windows server2012\2016\2 ...

  9. es6 最新函数封装(简易版)

    map封装: Array.prototype.map=function(fn){ var arr=this; var newArr=[] for(var i=0;i<arr.length;i++ ...

随机推荐

  1. oracle 存储过程和函数例子 --2

    关于 游标 if,for 的例子 create or replace procedure peace_if is cursor var_c is select * from grade; begin ...

  2. ♫【JS模式】偏函数

    <深入浅出Node.js> var toString = Object.prototype.toString var isType = function(type) { return fu ...

  3. (转载)提高mysql插入数据的速度

    (转载)http://blog.csdn.net/bhq2010/article/details/7376352 需要在mysql中插入2000万条记录,用insert语句插入速度很有限,每秒钟几百条 ...

  4. 【动态规划】Vijos P1143 三取方格数(NOIP2000提高组)

    题目链接: https://vijos.org/p/1143 题目大意: NxN的矩阵,每个值只能取一次,从(1,1)走到(n,n)走三次能取得的最大值. 题目思路: [动态规划] f[x1][y1] ...

  5. delphi record 内存怎么释放

    delphi record 内存怎么释放 是不需要释放的,除非你使用指针方式生成的.

  6. Json.Net学习笔记(十) 保持对象引用

    更多内容见这里:http://www.cnblogs.com/wuyifu/archive/2013/09/03/3299784.html 默认情况下,Json.Net将通过对象的值来序列化它遇到的所 ...

  7. SRM 407(1-250pt, 1-500pt)

    DIV1 250pt 题意:每个员工可以有几个直系上司,也可以有几个直系下属.没有直系下属的人工资为1,有直系下属的人工资为所有直系下属工资之和.求所有人工资之和.人数 <= 50. 解法:直接 ...

  8. SRM 502(2-1000pt)

    题意:在0~(n-1)中选择k个数,使得他们的和为n的倍数的选择方案有多少种.(n <= 1000, k <= 47) 解法:裸dp.d[i][j][k’]表示在前i个数中(0~i-1), ...

  9. ssh技巧

    1. 打通ssh key的简单方法: ssh-copyid 192.168.1.1 2.使用ssh 将Linux主机变成http代理服务器 ssh -NfD 192.168.22.1:10080 12 ...

  10. C#序列化和反序列化

    序列化和反序列化 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得. 序列化分为两大部分:序列化和反序列化.序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在 ...