大部分程序其实是使用封装后的log4jcpp等进行日志处理,对于单机来说可以用glog来打点日志,
但需要预先指定日志的输出目录否则均写到/tmp目录下将磁盘写满,
需要注意的一点是,高级别的日志向低级别日志扩展,这样输出的日志其实会冗余很大,另外,要将所有的级别日志设置输出目录否则未设置的仍会写到/tmp目录下,
以下为本人程序中的写会,供参考(也可能有更好的方法,比如不用全写上所有的级别但我还没有找到,知道的提示一下以便我改进代码冗余,thanks)
#include .......
int main(int argc, char **argv) {
::google::ParseCommandLineFlags(&argc, &argv, true);
std::string log_info = FLAGS_log_path + "/info.";
std::string log_error = FLAGS_log_path + "/error.";
::google::SetLogDestination(::google::FATAL, (FLAGS_log_path + "/fatal.").c_str());
::google::SetLogDestination(::google::ERROR, (FLAGS_log_path + "/error.").c_str());
::google::SetLogDestination(::google::WARNING, (FLAGS_log_path + "/warning.").c_str());
::google::SetLogDestination(::google::INFO, (FLAGS_log_path + "/info.").c_str());
::google::InitGoogleLogging(argv[0]);
LOG(INFO) << "start process " << argv[0];
std::tr1::shared_ptr<CLS_PROC> pCLS_PROC(new CLS_PROC());
bool ret_init = pCLS_PROC->_init();
if(!ret_init){
LOG(INFO) << "service break down!" << argv[0];
return EXIT_FAILURE;
}
usleep(100);
LOG(INFO) << "service running...";
pCLS_PROC->_start();
LOG(INFO) << "exit process" << argv[0];
return EXIT_SUCCESS;
}