MIF_E31222691/system/log.php

88 lines
1.8 KiB
PHP

<?php namespace System;
class Log {
/**
* Write an info message to the log.
*
* @param string $message
* @return void
*/
public static function info($message)
{
static::write('Info', $message);
}
/**
* Write a debug message to the log.
*
* @param string $message
* @return void
*/
public static function debug($message)
{
static::write('Debug', $message);
}
/**
* Write an error message to the logs.
*
* @param string $message
* @return void
*/
public static function error($message)
{
static::write('Error', $message);
}
/**
* Write a message to the logs.
*
* @param string $type
* @param string $message
* @return void
*/
public static function write($type, $message)
{
// -----------------------------------------------------
// Determine the yearly directory.
// -----------------------------------------------------
$directory = APP_PATH.'logs/'.date('Y');
if ( ! is_dir($directory))
{
static::make_directory($directory);
}
// -----------------------------------------------------
// Determine the monthly directory.
// -----------------------------------------------------
$directory .= '/'.date('m');
if ( ! is_dir($directory))
{
static::make_directory($directory);
}
// -----------------------------------------------------
// Determine the daily file.
// -----------------------------------------------------
$file = $directory.'/'.date('d').EXT;
file_put_contents($file, date('Y-m-d H:i:s').' '.$type.' - '.$message.PHP_EOL, LOCK_EX | FILE_APPEND);
chmod($file, 0666);
}
/**
* Create a log directory.
*
* @param string $directory
* @return void
*/
private static function make_directory($directory)
{
mkdir($directory, 02777);
chmod($directory, 02777);
}
}