Commit 4e1f7206726b6da5108fcc564bc1b9e88214172d

Authored by nbm
1 parent cc4727d6

Prevent conflicting log files in web vs. cli by embedding the user name

in the log file names.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5022 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 23 additions and 1 deletions
lib/Log.inc
... ... @@ -59,12 +59,30 @@ class KTLegacyLog {
59 59 $this->sLogFilePrefix = $sLogFilePrefix;
60 60 }
61 61  
  62 + function running_user() {
  63 + if (substr(PHP_OS, 0, 3) == "WIN") {
  64 + return null;
  65 + }
  66 + if (extension_loaded("posix")) {
  67 + $uid = posix_getuid();
  68 + $userdetails = posix_getpwuid($uid);
  69 + return $userdetails['name'];
  70 + }
  71 + if (file_exists('/usr/bin/whoami')) {
  72 + return exec('/usr/bin/whoami');
  73 + }
  74 + if (file_exists('/usr/bin/id')) {
  75 + return exec('/usr/bin/id -nu');
  76 + }
  77 + return null;
  78 + }
62 79  
63 80 /**
64 81 * Creates the log file from the current datetime
65 82 */
66 83 function initialiseLogFile() {
67 84 global $default;
  85 + $user = $this->running_user();
68 86 if (!file_exists($this->logDirectory)) {
69 87 $res = @mkdir($this->logDirectory, 0755);
70 88 if ($res === false) {
... ... @@ -72,7 +90,11 @@ class KTLegacyLog {
72 90 }
73 91 }
74 92  
75   - $this->logFile = $this->logDirectory . "/" . $this->sLogFilePrefix . "-" . date("Y-m-d") . ".txt";
  93 + if ($user) {
  94 + $this->logFile = sprintf("%s/%s-%s.%s.txt", $this->logDirectory, $this->sLogFilePrefix, date("Y-m-d"), $user);
  95 + } else {
  96 + $this->logFile = sprintf("%s/%s-%s.txt", $this->logDirectory, $this->sLogFilePrefix, date("Y-m-d"));
  97 + }
76 98 if (!file_exists($this->logFile)) {
77 99 $res = @touch($this->logFile);
78 100 if ($res === false) {
... ...