ok
Direktori : /proc/thread-self/root/proc/self/root/usr/lib/python2.7/site-packages/clcommon/ |
Current File : //proc/thread-self/root/proc/self/root/usr/lib/python2.7/site-packages/clcommon/cllog.py |
import datetime import os import sys import fcntl class ClAuditLog: def __init__(self, log_file_name): self._log_file_name = log_file_name def info_log_write(self, msg=""): dt_now = datetime.datetime.now() # Determine parent PID and it's name parent_proc_id = os.getppid() # Determine parent process name proc_name = self._get_process_name(parent_proc_id) # write to log file try: audit_log_file = open(self._log_file_name, 'a') fcntl.lockf(audit_log_file, fcntl.LOCK_EX | fcntl.LOCK_NB) audit_log_file.write(dt_now.strftime("%Y.%m.%d %H:%M:%S") + ": Parent process: " + proc_name + " (PID: " + str(parent_proc_id) + "): Args: " + str(sys.argv[1:]) + " " + msg + "\n") audit_log_file.close() except (IOError, OSError): # Ignore all file errors pass @staticmethod def _get_process_name(pid): ''' Get process name by pid :param pid: PID for get process name :return: process name ''' name = "<Unknown>" try: f = open("/proc/%s/stat" % pid, 'r') name = f.read().split(' ')[1].replace('(', '').replace(')', '') f.close() except: pass return name