pid support (added the %P option to formatter)
This commit is contained in:
		
							parent
							
								
									cda27d2bff
								
							
						
					
					
						commit
						cf73f02eaf
					
				@ -356,6 +356,17 @@ inline std::string errno_str(int err_num)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					inline int pid() 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					    return ::_getpid();
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    return static_cast<int>(::getpid());
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} //os
 | 
					} //os
 | 
				
			||||||
} //details
 | 
					} //details
 | 
				
			||||||
} //spdlog
 | 
					} //spdlog
 | 
				
			||||||
 | 
				
			|||||||
@ -356,7 +356,7 @@ private:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Thread id
 | 
					// Thread id
 | 
				
			||||||
class t_formatter:public flag_formatter
 | 
					class t_formatter:public flag_formatter
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    void format(details::log_msg& msg, const std::tm&) override
 | 
					    void format(details::log_msg& msg, const std::tm&) override
 | 
				
			||||||
@ -365,6 +365,15 @@ class t_formatter:public flag_formatter
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Current pid 
 | 
				
			||||||
 | 
					class pid_formatter:public flag_formatter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    void format(details::log_msg& msg, const std::tm&) override
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        msg.formatted << details::os::pid(); 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class v_formatter:public flag_formatter
 | 
					class v_formatter:public flag_formatter
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -453,6 +462,8 @@ class full_formatter:public flag_formatter
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
///////////////////////////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
@ -611,6 +622,10 @@ inline void spdlog::pattern_formatter::handle_flag(char flag)
 | 
				
			|||||||
        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::full_formatter()));
 | 
					        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::full_formatter()));
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case ('P'):
 | 
				
			||||||
 | 
					        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::pid_formatter()));
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default: //Unkown flag appears as is
 | 
					    default: //Unkown flag appears as is
 | 
				
			||||||
        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::ch_formatter('%')));
 | 
					        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::ch_formatter('%')));
 | 
				
			||||||
        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::ch_formatter(flag)));
 | 
					        _formatters.push_back(std::unique_ptr<details::flag_formatter>(new details::ch_formatter(flag)));
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user