ドキュメントの basic_logger の例のように、クラスごとにログ ソースが必要です
これは機能しますが、次のように const メンバー関数から何かをログに記録すると、constness について不平を言うコンパイラ エラーが発生します。
#include "boost/log/sources/channel_logger.hpp"
#include "boost/log/common.hpp"
#include "boost/log/utility/init/to_console.hpp"
#include "boost/log/utility/init/common_attributes.hpp"
class Test
{
    public:
        // this works, not a const function
        void test1()
        {
            BOOST_LOG(m_logger) << "Test 1";
        }
        // this will not compile, const function
        void test2() const            
        {
            BOOST_LOG(m_logger) << "Test 2";
        }
    private:
        boost::log::sources::channel_logger<std::string> m_logger;
};
int main()
{
    boost::log::add_common_attributes();
    boost::log::init_log_to_console();
    Test t;
    t.test1();
    t.test2();
    return 1;
}
この例Test::test2では、その const とm_loggerそうでないため、コンパイル エラーが発生します。Test::test1正常に動作します。
などを使わずconst_castにきれいな方法でこれを修正するにはどうすればよいですか?mutable