Log4cxx MS Windows 编译和使用

4380阅读 0评论2009-07-15 zieckey
分类:C/C++

by zieckey

到apache页面()下载下列三个文件:
    apr-*-win32-src.zip
    apr-util-*-win32-src.zip
    apr-iconv-*-win32-src.zip
另外,下载apache-log4cxx-0.10.0.tar.gz

下载完成后将这三个文件分别解压缩到和上面源代码相同的目录下。然后按照如下步骤进行编译:

a. 将apr-*-win32-src.zip解压后的文件名修改为:apr
b. 将apr-util-*-win32-src.zip解压后的文件名修改为:apr-util
c. 将apr-iconv-*-win32-src.zip解压后的文件名修改为:apr-iconv
d. 将apache-log4cxx-0.10.0.tar.gz解压后的文件名修改为:log4cxx
现在目录结构看起来如下:
 D:\log4cpp.compile\
            |_    apr
            |_    apr-iconv
            |_    apr-util
            |_    log4cxx
            
e、打开D:\log4cpp.compile\apr\apr.dsw 编译
f、打开D:\log4cpp.compile\apr-iconv\apriconv.dsp 编译
g、通过vcVS2008的DOS工具进入DOS窗口,此处直接在运行命令栏中输入cmd也可,不过为安全起见最后从VS2008的工具栏进入DOS界面
h、进入 D:\log4cpp.compile\log4cxx ,执行configure.bat configure-aprutil.bat 两个批处理
    D:\log4cpp.compile\log4cxx>configure.bat
    D:\log4cpp.compile\log4cxx>configure-aprutil.bat
       
        注意:由于在configure-aprutil.bat文件中使用了linux下的sed命令,
        所以该步可能会出现类似找不到sed命令的错误,这是由于在windows环境下编译的缘故。
    去这个页面  下载 sed,
    先安装上sed后再执行 configure-aprutil.bat

i、打开D:\log4cpp.compile\log4cxx\projects\log4cxx.dsw 编译
    如果出现类似找不到 apr_icove*函数的问题,
    请在log4cxx的项目属性里添加下面的链接lib(包括括号) 链接器->输入->附加依赖项
"..\..\apr-iconv\libd\apriconv-1.lib"



2.实例代码

       a.打开.net2003,新建一个空白的win32控制台工程,假设工程名为Test

       b.添加一个cpp文件,文件名随便命名

       c.右键点击Test工程,选择”属性”,然后在C++选项卡中添加附加库目录,注意该目录为../ apache-log4cxx-0.10.0\src\main\include

       d.在属性的链接器输入选项卡的”附加依赖项”中添加” log4cxx.lib”      

       e.在cpp文件中输入如下测试代码:

    #include
    #include

    using namespace std;
    using namespace log4cxx;

    int main(int argc, char* argv[])
    {
        string trace = "fa";
        string Property = "./log.properties";
        log4cxx::PropertyConfigurator::configure(Property);
        LoggerPtr logger = Logger::getLogger(trace);
        logger->info("info, How to use?");
        logger->debug("debug, How to use?");
        logger->warn("warn, How to use?");
        logger->error("error, How to use?");

        return 0;

    }

       f.新建一个文本文件,命名为log4cxx.properties,并键入如下内容:

    # 设置root logger为DEBUG级别,使用了ca和fa两个Appender

    log4j.rootLogger=DEBUG, ca, fa

    

    #对Appender fa进行设置:

    # 这是一个文件类型的Appender,

    # 其输出文件(File)为./output.log,

    # 输出方式(Append)为覆盖方式,

    # 输出格式(layout)为PatternLayout

    log4j.appender.fa=org.apache.log4j.FileAppender

    log4j.appender.fa.File=./output.log

    log4j.appender.fa.Append=false

    log4j.appender.fa.layout=org.apache.log4j.PatternLayout

    log4j.appender.fa.layout.ConversionPattern=%d [%t] %-5p %.16c - %m%n

    

    #对Appender ca进行设置

    # 这是一个控制台类型的Appender

    #  输出格式(layout)为PatternLayout

    log4j.appender.ca=org.apache.log4j.ConsoleAppender

    log4j.appender.ca.layout=org.apache.log4j.PatternLayout

    log4j.appender.ca.layout.ConversionPattern=%d [%t] %-5p %.16c - %m%n

       g. 将编译好的log4cxx.lib和log4cxx.dll及上面的log4cxx.properties文件拷贝之Test工程目录

      h.编译运行该文件,可以看到控制台输出相关日志,并且在工程目录下会得到一个output.log的日志文件



参考文档:
http://blog.csdn.net/houghstc/archive/2009/07/08/4332621.aspx


上一篇:虚基类转换为派生类的问题——一道深刻的面试题
下一篇:Python中常用字符串 函数