몇 가지 해결책이 있습니다.
1) 정적 함수에서 로컬 변수를 사용할 수 있습니다. 이와 같이 :
void MyClass::MyStaticmemberFunction()
{
boost::log::sources::logger my_logger;
BOOST_LOG(my_logger) << "log message.";
}
2) 클래스 개체에 대한 포인터를 함수 매개 변수로 전송할 수 있습니다. 이 경우 클래스에 "get function"도 추가해야합니다. 좋아요 :
// regular member function (not static) - "get function"
boost::log::sources::logger_mt MyClass::GetLogger()
{
return m_member_logger;
}
void MyClass::MyStaticMemberFunction(MyClass *my_class_object)
{
if (!my_class_object)
{
boost::log::sources::logger local_logger;
BOOST_LOG(local_logger) << "MyStaticFunction:: invalid input data.";
return;
}
BOOST_LOG(my_class_object->GetLogger()) << "log message.";
}
감사합니다.