【发布时间】:2016-04-19 10:15:05
【问题描述】:
我多次遇到这个问题。是否有一种“智能”方法可以从函数中排除日志记录?特别是如果在记录发生之前有一个逻辑检查(if/else)。我也想排除这个 if/else 。例如:
Return_Value = Init_Winsock();
if( Return_Value != 0 )
{
cout << "(" << __FILENAME__ << ":" << __LINE__ << "): ";
Errorcode_To_String( __FUNCTION__ );
}
else
{
cout << "(" << __FILENAME__ << ":" << __LINE__
<< "): " << "INFO: winsocked started" << endl;
}
Socket = socket( AF_INET,
SOCK_DGRAM,
0 );
if( Socket == INVALID_SOCKET )
{
cout << "(" << __FILENAME__ << ":" << __LINE__ << "): ";
Errorcode_To_String( __FUNCTION__ );
}
else
{
cout << "(" << __FILENAME__ << ":" << __LINE__
<< "): INFO: UDP socket opened" << endl;
}
我希望将两个 if/else 放在一个单独的函数中,最好是放在一个函数中。在 C++ 中可能有这样的事情吗?甚至是一个应该尽可能整洁的单独的日志记录类?
【问题讨论】:
-
请发布一些近似于你想要的东西——即使它不是有效的 c++ 来让人们更好地理解你想要实现的目标。