`
yesjavame
  • 浏览: 687712 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

log4cxx调试日志选择性输出的配置方法

阅读更多

log4cxx调试日志选择性输出的配置方法

(转载请注明来源于金庆的专栏)

一般是每个类都有自己的日志, 可建立一个静态成员logger如下:

class A
{
private:
static log4cxx::LoggerPtr logger;
};


需要在cpp文件中静态初始化:

log4cxx::LoggerPtr A::logger = log4cxx::Logger::getLogger("A");

日志类别名"A"就是类名, 也可以是模块名.类名, 如"DB.A".

log4cxx的惯例是使用这样一个静态成员.
但也可以是静态成员logger(), 这样不必静态初始化.

class A
{
private:
static log4cxx::LoggerPtr logger()
{
return log4cxx::Logger::getLogger("A");
}
};


但从效率考虑, 每次调用日志都要getLogger()不如静态初始化.

类代码中调用日志只需:

LOG4CXX_DEBUG(logger, "test log...");

日志配置log4j.properties如下:

log4j.rootLogger=WARN, R

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %5p %c %x: %m%n

# log4j.logger.DB.A=DEBUG


默认所有日志等级为WARN, 不会输出DEBUG日志,
只需显式设定某一类日志的级别, 就可以选择性地输出该类日志.
如调试A类时, 取消配置文件中的注释就行了.

分享到:
评论

相关推荐

    使用VS2019编译log4cxx.zip

    log4cxx提供了丰富的日志级别(如DEBUG, INFO, WARN, ERROR等)、输出格式化、日志分等级、日志归档、异步日志记录等功能,极大地提高了C++开发中的日志管理效率。在实际开发中,根据需求配置合适的日志策略,有助于...

    log4cxx_vs2015_x64

    4. 使用Logger记录日志:通过Logger对象调用如`LOG4CXX_INFO`、`LOG4CXX_DEBUG`等宏进行日志记录,这些宏会根据配置自动选择合适的Appender和Layout输出日志信息。 5. 应用部署:发布应用程序时,不仅要包含可执行...

    log4cxx 的工程产生的lib dll

    在上述代码中,`PropertyConfigurator::configure`方法用于配置日志属性,通常从`log4cxx.properties`文件读取,该文件可以定制日志的输出级别、格式、目标等。例如: ``` log4j.rootLogger=DEBUG, FILE log4j....

    vs2017编译log4cxx后生成的.dll .lib .h文件(已更新 可直接使用)

    log4cxx允许用户通过配置文件(通常是XML格式)来设置日志级别、输出目的地等参数。例如,可以设置哪些级别的日志应该被记录,是否输出到控制台或文件,是否滚动日志文件等。 8. **高级特性** log4cxx还支持日志...

    log4cxx Windows版

    3. `Log4cxx配置文件介绍.txt`:这可能是一个文本文件,详细解释了Log4cxx的配置文件格式和用法,包括如何定义日志输出级别、选择日志输出目的地(如控制台、文件、网络等)、自定义日志格式等。 4. `log4cxx使用...

    apache-log4cxx 在vs2010下编译通过.

    在实际开发中,合理地利用Log4cxx可以提高代码的可维护性和调试效率,同时提供详细的运行日志,便于问题排查。 总之,Apache Log4cxx是C++开发者不可或缺的日志工具,通过VS2010进行编译配置,可以使其在Windows...

    log4cxx 头文件和编译好的动态库

    在 C++ 应用程序中,log4cxx 允许开发者方便地进行调试、跟踪、监控和日志记录,从而提高代码的可维护性和问题排查效率。 1. **设计模式** log4cxx 采用了观察者模式,使得日志记录可以被插入到程序的任何位置,而...

    log4cxx dll .lib .a .so 編譯 linux windows

    它提供了灵活的日志配置,支持多种输出方式,如文件、控制台、SMTP邮件、数据库等,同时具备性能高效、易用性好等特点,广泛应用于各种C++项目中。 二、Windows平台编译 在Windows环境下,log4cxx通常生成.dll动态...

    C++日志类的编译

    5. **日志配置**:日志配置文件(如`log4cxx.properties`)可以指定日志输出级别、输出目的地(控制台、文件、网络等),还可以定制日志格式。例如: ``` log4cxx.rootLogger=DEBUG, FILE log4cxx.appender.FILE=...

    log4xx.lib.rar

    以上代码展示了如何初始化log4xx,配置日志属性并记录一条调试日志。注意,`log4xx.properties`文件是用于配置log4xx的,包括设置Appender、Layout等信息。 总结来说,log4xx库为C++开发者提供了强大的日志处理功能...

    apache apr & log4

    Log4j具有模块化的设计,可以适应各种日志需求,包括不同级别的日志(如DEBUG、INFO、WARN、ERROR、FATAL),以及通过配置文件来定制输出格式和目的地。此外,Log4j还支持自定义布局和过滤器,以满足特定的应用场景...

    ITRLogging:具有简化的基于宏的界面的 log4cxx 扩展

    日志记录ITRLogging 是 log4cxx 的扩展,具有基于宏的简化界面。 它以多种方式重新设计了 log4cxx用法。 ITR记录: 支持新的关卡布局; 支持分层默认记录器缓存:静态、类和函数; 提供 C 宏和 API 包装器; 支持...

    glog-master.7z

    相比其他C++日志库,如log4cpp、log4cxx和spdlog,glog的优势在于其强大的错误处理能力和稳定性,特别是在大型分布式系统中的表现。然而,glog的API相对较为复杂,对于简单项目可能不是最佳选择。开发者应根据项目...

    基于Windows C++ 应用程序通用日志组件的使用详解

    第一种是采用如Log4CXX之类的开源日志库,它们具有强大的跨平台功能和高度可配置性。然而,这些组件可能过于复杂,对于只需要基本日志记录功能的Windows C++应用来说,可能会显得多余,而且可能涉及到字符编码问题,...

    C++服务器程序demo

    log4cxx是Apache软件基金会的C++日志库,它模仿了Java的日志框架log4j。这个库提供了灵活的日志级别(如DEBUG、INFO、WARN、ERROR和FATAL),日志输出目的地(如文件、控制台、网络等),以及日志格式化等功能。在...

    GLOG源码 使用CMAKE之后生成了win32和win64的工程sln文件 在VS2019下编译成功,生成的库文件

    其特点是可配置、高性能,支持日志级别控制、堆栈追踪、日志定向到文件等功能,使得开发者能够方便地调试和监控程序运行状态。 2. CMake介绍: CMake是一个跨平台的构建系统,它不直接生成特定平台的构建工具指令...

    android studio使用CMAKE编译ffmepg

    1. **添加CMake配置**:在`build.gradle`模块文件中,你需要添加CMake的相关配置,例如设置CMake版本和路径,以及编译时的参数。例如: ```groovy android { externalNativeBuild { cmake { cppFlags "-frtti -...

    百问FreeSwitch.pdf

    - **方法**:编辑`log4cxx.properties`文件中的日志配置。 - **级别**:如`INFO`、`DEBUG`、`ERROR`等。 **45. 查看注册用户数量** - **命令**:在FS_CLI中输入`sofia status`查看Sofia模块的状态。 **46. ...

    android studio 使用NDK和swig编译c++示例

    在Android开发中,有时我们需要利用C++库来提升性能或者...通过这种方式,你可以利用C++的强大功能,同时保持Java代码的易读性和可维护性。当你有更复杂的C++库需要集成时,SWIG能帮你节省大量手动编写绑定代码的时间。

Global site tag (gtag.js) - Google Analytics