前言
在工程项目中,有时候希望将所有需要输出的日志都能输出到统一个目录下,在程序中我们有什么比较有效的做法呢?
解决方法新建一个.sh文件,比如run.sh,输入如下命令:
#log file create base_dir_log_nam=/home/yourname/path #这里自己设定路径 echo ${base_dir_log_nam} if [ ! -d ${base_dir_log_nam} ];then mkdir ${base_dir_log_nam} fi now_log_path=${base_dir_log_nam}/$(date +%Y%m%d_%H%M%S)/ echo ${now_log_path} if [ ! -d ${now_log_path} ];then mkdir ${now_log_path} fi export LOG_PATH=${now_log_path} echo ${LOG_PATH} #run your project **** #这里运行你的程序
我们每次运行程序时,只需要通过run.sh脚本来启动运行程序即可,我们便创建了一个系统环境变量LOG_PATH,如果程序中哪里需要输出log,可以通过如下语句即可。
std::string log_path; char * c_export_env_path = getenv("LOG_PATH"); if(c_export_env_path) log_path = std::string(c_export_env_path); else log_path = "/tmp/"; #如果你想输出一个log专门读取某个pose,可以如下: