-
Notifications
You must be signed in to change notification settings - Fork 0
I'm perl/php programmer (more perl-programmer). In perl projects I use Log::Log4perl module, but in php I don't find opportune and flexible decisions. I was tried to written own classes like Log::Log4perl. So, my php logger.
antonfin/PHP-Logger
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
/* * @author: Anton Morozov * @email: anton@antonfin.kiev.ua * @copyright (c) 2009-2010 by Anton Morozov * @version: 0.90_32b * * In 0.90_31b: * 1) Create file if it doesn't exists. Type - file. * 2) Added multy-colors feature for Logger_stdout class, see options "color" and "colors". Start from set color = true!!! * 2) Bugfixes * * In 0.90_32b: * 1) Bugfixes * 2) Optimization */ Logger - Log::Log4perl implementation for PHP // Simple examples require_once ('lib/Logger.php'); You may very flexible configure your logger for your current tasks. // First version - print log to STDOUT, good decision for simple php system/cron scripts $config = array( 'use' => array('log'), 'appenders' => array( 'log' => array( 'type' => 'stdout' ) ) ); // I like use other colors for marks other messages on the terminal $config = array( 'use' => array('log'), 'appenders' => array( 'log' => array( 'type' => 'stdout', color => true ) ) ); // Sometime I set colors. If your color doesn't exist system write text usage default 'green' color (this color default in my terminal) $config = array( 'use' => array('log'), 'appenders' => array( 'log' => array( 'type' => 'stdout', 'color' => true, 'colors' => array( 'debug' => 'yellow', 'info' => 'green', 'warn' => 'purple', 'error' => 'cyan', 'fatal' => 'red', ) ) ) ); // Second version - for WEB-project. I use 2 log files: first with all messages and second // only with error and fatal messages $config = array( 'use' => array('log_debug', 'log_error'), 'appenders' => array( 'log_debug' => array( 'type' => 'file', 'filepath' => '../log/debug.log', 'min_log_level' => 'debug' ), 'log_error' => array( 'type' => 'file', 'filepath' => '../log/error.log', 'min_log_level' => 'error' ) ) ); // // use - parameter say what are logs usage // appenders - parameter say how this modes must be work // I like use own log string format "DATE LEVEL - FILE:FUNCTION:LINE - MESSAGE" I formed new config, where set how logger must print messages: $config = array( 'use' => array('log_debug', 'log_error'), 'appenders' => array( 'log_debug' => array( 'type' => 'file', 'filepath' => '../log/debug.log', 'min_log_level' => 'debug', 'log_format' => '%d %p - %f:%M:%L - %m'), 'log_error' => array( 'type' => 'file', 'filepath' => '../log/error.log', 'min_log_level' => 'error', 'log_format' => '%d %p - %f:%M:%L - %m') ) ); You may use own log format: %C Fully qualified package (or class) name of the caller %d Current date in yyyy/MM/dd hh:mm:ss format %t timer in ss.ssss format %F File (full path) where the logging event occurred %f File (name only) where the logging event occurred %H Hostname %L Line number within the file where the log statement was issued %m The message to be logged %m{chomp} The message to be logged, stripped off a trailing newline %M Method or subroutine where the logging request was issued %n Newline (OS-independent) %p Priority of the logging event %P pid of the current process %T A stack trace of functions called %% A literal percent (%) sign But, I don't like repeated, and I added new config parameter "common", config changed: $config = array( 'use' => array('log_debug', 'log_error'), 'common' => array('log_format' => '%d %p - %f:%M:%L - %m'), 'appenders' => array( 'log_debug' => array( 'type' => 'file', 'filepath' => '../log/debug.log', 'min_log_level' => 'debug'), 'log_error' => array( 'type' => 'file', 'filepath' => '../log/error.log', 'min_log_level' => 'error') ) ); // common - it's default for all modes values, but you may have special settings for every modes. NOTE! Property - type, must have every mode in appenders config part. Today exists next type: 1. stdout - print to STDOUT 2. file - print to file 3. mail - send email for every log message 4. syslog - print to syslog Planed: 5. web - print log to WEB Browser 6. smtp - send message usage direct smpt server 7. sendmail - send message usage sendmail /*************************************************** ************* Options: **************** 1. "place" - string, show what file, filepath or class name logs must be saved Example: place => 'SpecFileClass'; // Save logs only from class SpecFileClass place => 'api.logger.php'; // Save logs only from file api.logger.php place => '/var/domain.test/www/php/api.logger.php' // Save logs only from file '/var/domain.test/www/php/api.logger.php' 2. "place_regexp" - like "place", but you set regexp. place_regexp => '/Class$/' // Save logs only from classes finishing like "Class" place_regexp => '/^api/' // Save logs only from classes or files starting like "api" place_regexp => '/^TestClass|MyLogger|SpecArray$/' // Save logs only from classes TestClass, MyLogger and SpecArray place_regexp => '/^\/var\/domain\.test\/lib\/classes/' // Save all logs from files in folder classes and lower place_regexp => '/^\/var\/domain\.test\/lib\/classes\/API/' // Save all logs from classes API and API_.... (if PEAR style) 3. "add_var" - bool, deafult - true. Added $VAR(Number) - before all new logged variables 4. MANY OTHER OPTIONS SEE CODE OR NEXT Logger README VERSION *******************************************************/ Create logger require_once( 'lib/Logger.php' ); Logger::set_config( $config ); // create new logger object $l = Logger::get_logger(); // print messages $l->debug( $array, $string, $int, ... ); $l->info( $array, $string, $int, ... ); $l->warn( $array, $string, $int, ... ); $l->error( $array, $string, $int, ... ); $l->fatal( $array, $string, $int, ... ); For more information see: Logger.php - main logger Logger/Common.php - common log functions Logger/* - modules And About Log::Log4perl: http://search.cpan.org/~mschilli/Log-Log4perl-1.28/lib/Log/Log4perl.pm http://www.perl.com/pub/a/2002/09/11/log4perl.html
About
I'm perl/php programmer (more perl-programmer). In perl projects I use Log::Log4perl module, but in php I don't find opportune and flexible decisions. I was tried to written own classes like Log::Log4perl. So, my php logger.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published