zoukankan      html  css  js  c++  java
  • 调用log4cxx步骤

      Log4cxx是开放源代码项目Apache Logging Service的子项目之一,是Java社区著名的log4jc++移植版,用于为C++程序提供日志功能,以便开发者对目标程序进行调试和审计。有关log4cxx的更多信息可以从Apache Loggin Service的网站http://logging.apache.org获得。当前的最新版本为0.10.0,本文内容及示例代码都是基于此版本。

    可以从官方网站(http://logging.apache.org/log4cxx/index.html)获取源代码,下载版本为apache-log4cxx-0.10.0,下载完成后解压缩到合适目录

    下载的原始文件包中没有包含编译后的开发库,需要自己编译生成,本文使用vc.net2003编译该源文件,编译时需要如下文件包:

           apr-1.2.11-win32-src.zip和apr-util-1.2.10-win32-src.zip

    这两个压缩包的下载地址分别如下:

           http://archive.apache.org/dist/apr/apr-1.2.11-win32-src.zip

           http://archive.apache.org/dist/apr/apr-util-1.2.10-win32-src.zip

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

    a.       将apr-1.2.11-win32-src.zip解压后的文件名修改为:apr

    b.       将apr-util-1.2.10-win32-src.zip解压后的文件名修改为:apr-util

    c.       通过vc.net2003的DOS工具进入DOS窗口,此处直接在运行命令栏中输入cmd也可,不过为安全起见最后从.net2003的工具栏进入DOS界面

    d.       使用cd 命令进入apache-log4cxx-0.10.0目录

    e.       输入configure命令,执行configure.bat批处理文件

    f.        输入configure-aprutil命令,执行configure-aprutil.bat批处理文件。

    注意:由于在configure-aprutil.bat文件中使用了linux下的sed命令,所以该步可能会出现类似找不到sed命令的错误,这是由于在windows环境下编译的缘故。可以使用如下两种方法解决:1.下载一个sed for windows的工具;2.使用Cygwin;不过本人强烈推荐使用第二种方法,因为有些sed for windows的工具存在bug。关于如何在windows环境下安装Cygwin请看文章后名说明。

    g.     使用vc.net2003打开Projects文件夹下的log4cxx.dsw项目,将log4cxx工程设为启动项目,然后编译即可

    h.       编译成功后,就可以在projects的Debuge或者Release文件夹下看到lib和dll文件

    1. 引入头文件和lib

    #include <log4cxx/logger.h>
    #include <log4cxx/propertyconfigurator.h>

    #pragma comment (lib, "log4cxx.lib") 或者 把log4cxx.lib 加到 project->settings->linker->object/library modules

    2. 设置配置文件

    log4cxx::PropertyConfigurator::configureAndWatch

    3. 写log

    log4cxx::Logger::getLogger(_pref)->info

    log4cxx::Logger::getLogger(_pref)->debug

    log4cxx::Logger::getLogger(_pref)->fatal

    ...

    log4cxx支持对不同的prefix 使用不同的appender,比如像下面的.properties 文件

    # DEBUG < INFO < WARN < ERROR < FATAL
    log4j.rootLogger=info, R
    log4j.logger.TNetSvr = info, TNS
    log4j.logger.TNetCmd = info, TNC
    log4j.logger.TMQSvr = info, TMQ

    # local rolling file appender
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=C:\\Program Files\\THC\\TRDS2\\thcclient.log
    log4j.appender.R.MaxFileSize=1024KB
    log4j.appender.R.MaxBackupIndex=10
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern= %p %d{%Y-%m-%d:%H:%M:%S,%Q} %c - %m%n

    # socketappender
    # ensure the RemoteHost ip and port valid
    log4j.appender.SOCKET=org.apache.log4j.SocketAppender
    log4j.appender.SOCKET.RemoteHost=192.168.0.1
    log4j.appender.SOCKET.Port=80
    log4j.appender.SOCKET.LocationInfo=true
    log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %d{%Y-%m-%d:%H:%M:%S,%Q} %c - %m%n

    log4j.appender.TNS=org.apache.log4j.RollingFileAppender
    log4j.appender.TNS.File=C:\\Program Files\\THC\\TRDS2\\TNetSvr.log
    log4j.appender.TNS.MaxFileSize=1024KB
    log4j.appender.TNS.MaxBackupIndex=10
    log4j.appender.TNS.layout=org.apache.log4j.PatternLayout
    log4j.appender.TNS.layout.ConversionPattern= %p %d{%Y-%m-%d %H:%M:%S} %c %u - %m%n

    log4j.appender.TNC=org.apache.log4j.RollingFileAppender
    log4j.appender.TNC.File=C:\\Program Files\\THC\\TRDS2\\TNetCmd.log
    log4j.appender.TNC.MaxFileSize=1024KB
    log4j.appender.TNC.MaxBackupIndex=10
    log4j.appender.TNC.layout=org.apache.log4j.PatternLayout
    log4j.appender.TNC.layout.ConversionPattern= %p %d{%Y-%m-%d %H:%M:%S} %c %u - %m%n

    log4j.appender.TMQ=org.apache.log4j.RollingFileAppender
    log4j.appender.TMQ.File=C:\\Program Files\\THC\\TRDS2\\TMQSvr.log
    log4j.appender.TMQ.MaxFileSize=1024KB
    log4j.appender.TMQ.MaxBackupIndex=10
    log4j.appender.TMQ.layout=org.apache.log4j.PatternLayout
    log4j.appender.TMQ.layout.ConversionPattern= %p %d{%Y-%m-%d %H:%M:%S} %c %u - %m%n


  • 相关阅读:
    Python3 获取抖音无水印视频 2020年12月23日----lanyi原创
    javascript9分享到菜单,菜单在屏幕左侧的移出和收回
    javascript8图片刹车运动
    javascript7图片的淡入淡出
    javascript6鼠标拖拽图片
    javascript5每秒改变字体颜色的大小
    javascript4动态生成表格
    javascript3跟随鼠标的提示框
    javascript2选项卡
    同学,为什么Golang中不用this和self
  • 原文地址:https://www.cnblogs.com/lzjsky/p/1990007.html
Copyright © 2011-2022 走看看