print owner of process

master
denes 5 years ago
parent 17455f2084
commit 32131e3e55
Signed by: denes
GPG Key ID: A7D50EAD42F9FC9F

@ -50,11 +50,14 @@ public:
case 'c':
m_print_to_console = true;
break;
case 'f':
m_logFile = std::string(optarg);
break;
case 't':
m_timestamp = true;
break;
case 'f':
m_logFile = std::string(optarg);
case 'u':
m_username = true;
break;
case 'h':
printUsage();

@ -1,6 +1,10 @@
#ifndef LOGGER_HPP
#define LOGGER_HPP
#include <sys/types.h>
#include <pwd.h>
#include <ctime>
#include <ostream>
@ -13,11 +17,16 @@ class Logger : public Singleton_DCLP<Logger>
public:
class Endl {};
Logger() : m_os(nullptr), m_buffer(), m_print_time_stamp(false) {}
Logger() :
m_os(nullptr),
m_buffer(),
m_print_time_stamp(false),
m_print_user_name(false) {}
void setStream(std::ostream* os) { m_os = os; }
void setPrintTimeStamp(bool b = true) { m_print_time_stamp = b; }
void setPrintUserName(bool b = true) { m_print_user_name = b; }
template <class T>
Logger &operator<<(const T &x) {
@ -42,12 +51,22 @@ private:
s.pop_back(); // removing trailing \n
*m_os << s << " ";
}
if (m_print_user_name) {
#ifdef linux
const uid_t uid = getuid();
const struct passwd* p = getpwuid(uid);
*m_os << p->pw_name << " ";
#elif _win32
*m_os << "n00b ";
#endif
}
}
// ostreams are not copyable, hence storing a pointer only
std::ostream* m_os;
std::ostringstream m_buffer;
bool m_print_time_stamp;
bool m_print_user_name;
};
#define LOG *Logger::getInstance()

@ -26,6 +26,7 @@ int main(int argc, char* argv[])
}
Logger::getInstance()->setPrintTimeStamp(argparser.printTimestamp());
Logger::getInstance()->setPrintUserName(argparser.printUsername());
std::string line;
while (std::getline(std::cin, line))

Loading…
Cancel
Save