95 lines
2.3 KiB
PHP
95 lines
2.3 KiB
PHP
![]() |
<?php
|
|||
|
namespace dever;
|
|||
|
use think\Log as Tool;
|
|||
|
|
|||
|
class Log
|
|||
|
{
|
|||
|
private static $size = 20485760;
|
|||
|
|
|||
|
public static function write($key, $name, $content)
|
|||
|
{
|
|||
|
if (is_array($content)) {
|
|||
|
$content = json_encode($content, JSON_UNESCAPED_UNICODE);
|
|||
|
}
|
|||
|
|
|||
|
$path = self::path($key);
|
|||
|
// var_dump($path);die;
|
|||
|
$file = $path . $name . '.log';
|
|||
|
|
|||
|
$exists = false;
|
|||
|
if (file_exists($file)) {
|
|||
|
$exists = true;
|
|||
|
}
|
|||
|
|
|||
|
if ($exists && self::$size <= filesize($file)) {
|
|||
|
rename($file, $file . '.' . date('H_i_s') . '.bak');
|
|||
|
$exists = false;
|
|||
|
}
|
|||
|
|
|||
|
$now = date('Y-m-d H:i:s');
|
|||
|
|
|||
|
$log = $now . ' ~ ' . $content . "\r\n";
|
|||
|
// if(!$exists){
|
|||
|
// $files = self::mkdirFile($file);
|
|||
|
// if($files){
|
|||
|
// @chmod($file, 0755);
|
|||
|
// @shell_exec('chmod -R 777 ' . $file);
|
|||
|
//// @system('chmod -R 777 ' . $file);
|
|||
|
// }
|
|||
|
// #Call to undefined function dever\system()
|
|||
|
//
|
|||
|
//
|
|||
|
// }
|
|||
|
// var_dump($file);die;
|
|||
|
|
|||
|
$state = @error_log($log, 3, $file);
|
|||
|
if (!$exists) {
|
|||
|
@chmod($file, 0755);
|
|||
|
@shell_exec('chmod -R 777 ' . $file);
|
|||
|
// @system('chmod -R 777 ' . $file);
|
|||
|
}
|
|||
|
|
|||
|
return $state;
|
|||
|
}
|
|||
|
|
|||
|
public static function mkdirFile($key)
|
|||
|
{
|
|||
|
return touch($key);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public static function path($key)
|
|||
|
{
|
|||
|
# 不能写入到public里,不然有被查看的风险
|
|||
|
$path = root_path();
|
|||
|
$path = $path . "extend/" . 'data/logs' . DIRECTORY_SEPARATOR;
|
|||
|
// var_dump($path);die;
|
|||
|
//return $path;
|
|||
|
self::createPath($path);
|
|||
|
|
|||
|
if ($key) {
|
|||
|
$path .= $key . DIRECTORY_SEPARATOR;
|
|||
|
}
|
|||
|
|
|||
|
#xxx/01/02/03
|
|||
|
|
|||
|
self::createPath($path);
|
|||
|
$time = date('Y_m_d');
|
|||
|
$date = explode('_', $time);
|
|||
|
foreach($date as $k => $v) {
|
|||
|
$path .= $v . DIRECTORY_SEPARATOR;
|
|||
|
self::createPath($path);
|
|||
|
}
|
|||
|
return $path;
|
|||
|
}
|
|||
|
|
|||
|
private static function createPath($path)
|
|||
|
{
|
|||
|
if (!is_dir($path)) {
|
|||
|
mkdir($path,0777, true);
|
|||
|
@chmod($path, 0755);
|
|||
|
@shell_exec('chmod -R 777 ' . $path);
|
|||
|
// @system('chmod -R 777 ' . $path);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|