zoukankan      html  css  js  c++  java
  • (原创)一个log4cpp帮助类

    引用log4cpp头文件和lib文件后,通过一个帮助类来输出日志,帮助类中定义了一些静态方法,实现日志的输出,使用起来很简单。代码如下:

    #include <log4cpp/Category.hh>
    #include <log4cpp/RollingFileAppender.hh>
    #include <log4cpp/PatternLayout.hh>
    #include <log4cpp/OstreamAppender.hh>
    using namespace log4cpp;
    
    #include <boost/utility.hpp>
    #include <boost/thread.hpp>
    
    boost::once_flag g_call_once=BOOST_ONCE_INIT;
    class Logger : boost::noncopyable
    {
    private:
        Logger(void){}    
    
        static void Init()
        {
        #if _DEBUG
            OstreamAppender* fileAppender=new OstreamAppender("osAppender",&cout);
        #else
            RollingFileAppender* fileAppender=new RollingFileAppender("fileAppender","..\\log\\antbus.log");
        #endif
    
            PatternLayout* pLayout=new PatternLayout();
            pLayout->setConversionPattern("%d{%Y-%m-%d %H:%M:%S,%l}: %p %c %x: %m%n");
            fileAppender->setLayout(pLayout);
    
            Category& root= Category::getRoot();
            root.addAppender(fileAppender);
            root.setPriority(Priority::INFO);
        }
    public:
        ~Logger(void){}
    
        void static Debug(string str)
        {
            boost::call_once(g_call_once, Init);
            Category::getRoot().debug(str);
        }
    
        void static Info(string str)
        {
            boost::call_once(g_call_once, Init);
            Category::getRoot().info(str);
        }
    
        void static Warn(string str)
        {
            boost::call_once(g_call_once, Init);
            Category::getRoot().warn(str);
        }
    
        void static Error(string str)
        {
            boost::call_once(g_call_once, Init);
            Category::getRoot().error(str);
        }
    
        void static Faltal(string str)
        {
            boost::call_once(g_call_once, Init);
            Category::getRoot().fatal(str);
        }
    };

    测试代码:

        Logger::Error("erro1");
        Logger::Info("info");
        Logger::Warn("warn");
        Logger::Faltal("faltal");

    测试结果:

  • 相关阅读:
    maven打包时跳过测试
    idea打包SpringBoot项目打包成jar包和war
    idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到
    idea16使用maven命令clean、编译、打包jar或者war
    关于spring boot jar包与war包的问题
    spring boot-html和templates
    spring boot之访问静态页面
    奇虎360选择IPO “壳概念”很受伤
    不怕成本高,不怕卖的少。高端形象一定要打起来。
    ddddd
  • 原文地址:https://www.cnblogs.com/qicosmos/p/3021987.html
Copyright © 2011-2022 走看看