<?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) { // Create the yearly and monthly directories if needed. static::make_directory($directory = APP_PATH.'storage/logs/'.date('Y')); static::make_directory($directory .= '/'.date('m')); // Get the daily log file filename. $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. * * If the directory already exists, no action will be taken. * * @param string $directory * @return void */ private static function make_directory($directory) { if ( ! is_dir($directory)) { mkdir($directory, 02777); chmod($directory, 02777); } } }