我试图将一个简单的错误记录合并到我现有的应用程序中,此时它只报告错误使用,cout所以我希望使用<<运算符保持类似的界面.但是我希望它记录行和函数发生的错误,但我不想__LINE__, __FUNCTION__每次需要记录时都要输入.有没有人知道我可以用来允许__LINE__宏在另一个函数中使用的技巧,而是报告调用行?希望有道理.
class myLogClass {
uint8_t level;
public:
bool operator<<( const char * input );
};
bool myLogClass::operator<<( const char * input ) {
logItInSQL( input );
return true;
}
Run Code Online (Sandbox Code Playgroud)
而不是每次都这样
myLogClass << "Line No: " << __LINE__
<< " Function: " << __FUNCTION__
<< " Error: " << "This is my error to be logged";
Run Code Online (Sandbox Code Playgroud)
我想能够做到:
myLogClass << "This is my error to be logged";
bool myLogClass::operator<<( const char * input …Run Code Online (Sandbox Code Playgroud) class logger {
....
};
logger& operator<<(logger& log, const std::string& str)
{
cout << "My Log: " << str << endl;
return log;
}
logger log;
log << "Lexicon Starting";
Run Code Online (Sandbox Code Playgroud)
工作正常,但我想使用指向类实例的指针.即
logger * log = new log();
log << "Lexicon Starting";
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,语法是什么?谢谢
编辑:编译器错误是
error: invalid operands of types 'logger*' and 'const char [17]' to binary 'operator<<'
Run Code Online (Sandbox Code Playgroud)