0
사람이 사용자 정의 COUT를 만드는 간단한 예제를 줄 수 콘솔 및 syslog에 전송하는 방법, 나는 콘솔에 인쇄와 동시에 syslog에 문자열을 보낼 MyCout 클래스를 가지고 싶습니다.cout을 가지고 동시에
MyCout myCout
myCout << "Test" << endl;
콘솔 출력 "테스트"및 "테스트"가 syslog로 전송되어야합니다.
사람이 사용자 정의 COUT를 만드는 간단한 예제를 줄 수 콘솔 및 syslog에 전송하는 방법, 나는 콘솔에 인쇄와 동시에 syslog에 문자열을 보낼 MyCout 클래스를 가지고 싶습니다.cout을 가지고 동시에
MyCout myCout
myCout << "Test" << endl;
콘솔 출력 "테스트"및 "테스트"가 syslog로 전송되어야합니다.
사소한 솔루션 (전용 C 스타일의 문자열 작품) :
#include <iostream>
using namespace std;
void syslog(const char* msg) {
std::cout << "syslog " << msg;
}
struct MyCout {
void operator<< (const char* rhs) {
std::cout << rhs << "\n";
syslog(rhs);
}
};
int main() {
MyCout myCout;
myCout << "Test";
return 0;
}
이의 훨씬 더 복잡 당신이 출력 다르거 나 사용자 정의 유형에 wan't 경우 얻을.
간단하지 않습니다. 종종 우리는'stringstream'에서 출력을 만들고 대신'cout'과'syslog'에 최종 결과를 출력하기로했습니다. –
FYI : 보통 stdout으로 보낸 출력을 * 콘솔 *로 보낼 수는 없습니다. 사용자는 원하는 곳 어디에서나 출력을 자유롭게 보낼 수 있습니다. 콘솔에 * insist *하고 싶다면, tty에 직접 써야합니다 (프로세스가 실제로 가지고 있다고 가정). 아마도 curses 라이브러리를 사용하는 것과 비슷할 것입니다. –