

Boost.Logを使って、ログを出力するのですが、グローバル定義のログとクラス単位に生成されるログの出力先を分けたいと考えています。  
クラス単位のログは動的に生成するので、levelで分けることは想定していません。  
ログ出力の定義は、チュートリアルを見たところグローバルの設定なので、出力設定全体に影響しています。

環境：

[code]

    gcc バージョン 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC)
    BOOST_VERSION　106400
    BOOST_LIB_VERSION　1_64
    
[/code]

サンプルソースコード：

[code]

    #define BOOST_LOG_DYN_LINK 1
    #include <boost/log/common.hpp>
    #include <boost/log/trivial.hpp>
    #include <boost/log/utility/setup/file.hpp>
    #include <boost/log/sources/logger.hpp>
    #include <boost/log/utility/setup/common_attributes.hpp>
    
    namespace keywords = boost::log::keywords;
    
    int main()
    {
        BOOST_LOG_TRIVIAL(trace) << "Global Mesaage Start";
    
        boost::log::add_file_log(
            keywords::file_name = "logs/%Y_%m_%d_%1N.log",
            keywords::rotation_size = 10 * 1024,
            keywords::format = "[%TimeStamp%]:%LineID% %Message%",
            keywords::auto_flush = true
        );
        boost::log::add_common_attributes();
        boost::log::sources::logger local_log;
    
        BOOST_LOG(local_log) << "Local Message" ;
    
        BOOST_LOG_TRIVIAL(trace) << "Global Mesaage Finish";
    }
    
[/code]

コンパイルコマンド：

[code]

    gcc fquestion.cpp -lstdc++ -lboost_system -lboost_log -lboost_log_setup -lboost_thread -pthread
    
[/code]

出力：

[code]

    [2018-03-23 17:40:35.091111] [0x00007f600e816740] [trace]   Global Mesaage Start
    [xxx@localhost tmp]$ ls logs
    2018_03_23_0.log
    [xxx@localhost tmp]$ tail logs/*
    [2018-03-23 17:40:35.091709]:1 Local Message
    [2018-03-23 17:40:35.092338]:2 Global Mesaage Finish
    
[/code]

ゴール：  
stdoutに「Global Mesaage Start」「Global Mesaage Finish」を出力して、「Local
Message」は指定ファイルへ出力する

ご回答よろしくお願いします。


CC BY-SA 3.0
2018-03-23T09:05:28.743
42605
2018-03-23T09:05:28.743
27853
question
c++ boost
Boost.Log で グローバルとローカルのログファイルを分けたい