logging.func.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. define('LOGGING_ERROR', 'error');
  8. define('LOGGING_TRACE', 'trace');
  9. define('LOGGING_WARNING', 'warning');
  10. define('LOGGING_INFO', 'info');
  11. function logging_run($log, $type = 'trace', $filename = 'run') {
  12. global $_W;
  13. $filename = IA_ROOT . '/data/logs/' . $filename . '_' . date('Ymd') . '.php';
  14. load()->func('file');
  15. mkdirs(dirname($filename));
  16. $logFormat = '%date %type %user %url %context';
  17. if (!empty($GLOBALS['_POST'])) {
  18. $context[] = logging_implode($GLOBALS['_POST']);
  19. }
  20. if (is_array($log)) {
  21. $context[] = logging_implode($log);
  22. } else {
  23. $context[] = preg_replace('/[ \t\r\n]+/', ' ', $log);
  24. }
  25. $log = str_replace(explode(' ', $logFormat), array(
  26. '[' . date('Y-m-d H:i:s', $_W['timestamp']) . ']',
  27. $type,
  28. $_W['username'],
  29. $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'],
  30. implode("\n", $context),
  31. ), $logFormat);
  32. if (file_exists($filename)) {
  33. $log = $log . "\r\n";
  34. } else {
  35. $log = "<?php exit;?>\r\n" . $log . "\r\n";
  36. }
  37. file_put_contents($filename, $log, FILE_APPEND);
  38. return true;
  39. }
  40. function logging_implode($array, $skip = array()) {
  41. $return = '';
  42. if (is_array($array) && !empty($array)) {
  43. foreach ($array as $key => $value) {
  44. if (empty($skip) || !in_array($key, $skip, true)) {
  45. if (is_array($value)) {
  46. $return .= $key . '={' . logging_implode($value, $skip) . '}; ';
  47. } else {
  48. $return .= "$key=$value; ";
  49. }
  50. }
  51. }
  52. }
  53. return $return;
  54. }