Re: static Logging class?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Make a real classed object that you pass to various objects that need it. Otherwise you make your life way harder for unit testing. Don't have a class that self-enforces that it's a singleton. That way lies pain.

In particular, I recommend using or writing a class based on the PSR-3 recommendation:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md

There's even stock code for the interface and some useful base classes available:

https://packagist.org/packages/psr/log

And for added fun, there are already publicly available open source libraries that implement PSR-3 that you can just drop in and use, such as:

https://packagist.org/packages/monolog/monolog

(If that's too heavy for you, writing your own PSR-3 compatible logger is dead-simple.)


I'm sure you're about to say "zOMG this is just a hobby project, I don't need something that fancy and all injected and shit!" If it's a simple project, use a simple container to do all the hard work for you:

https://packagist.org/packages/pimple/pimple

(That's < 100 lines of executable code. Quite powerful, dead simple to use.)

Cheers.

--Larry Garfield, FIG member


On 03/03/2013 07:26 AM, Lars Nielsen wrote:
Hi,

I work on a little hobby-project, and i want to make a oo logging
facility. (php5.3 oop)

Is it best to make a class with static functions that i can call from my
other classes? Or is it more appropriate to make a real logging-class i
should instantiate every time i need to log something? (I just want to
log to a file)

Best regards
Lars Nielsen




--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux