{"issue":{"title":"Logger Interface","created_at":"2011-12-23T19:02:01Z","user":{"login":"cspray","id":771345,"url":"https://api.github.com/users/cspray","gravatar_id":"0fd2816e78f6a04d5f8ce0aba1cb42e6","avatar_url":"https://secure.gravatar.com/avatar/0fd2816e78f6a04d5f8ce0aba1cb42e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"milestone":{"title":"Error Trapping, Logging and Display","created_at":"2011-12-23T18:33:45Z","creator":{"login":"cspray","id":771345,"url":"https://api.github.com/users/cspray","gravatar_id":"0fd2816e78f6a04d5f8ce0aba1cb42e6","avatar_url":"https://secure.gravatar.com/avatar/0fd2816e78f6a04d5f8ce0aba1cb42e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"open_issues":2,"state":"open","due_on":null,"closed_issues":0,"number":1,"description":"The framework should provide some implementation to deal with various errors that may occur, this includes situations where errors are being generated by PHP itself or there is a log-worthy occurrence happening within the framework itself.  \r\n\r\nSo, in a rough-draft list some of the things include:\r\n\r\n- Interface providing callback for [`set_error_handler()`](http://php.net/manual/en/book.errorfunc.php) and a method in which to set the appropriate Logger.  Also, think about other things that may need to go into the error handling class.\r\n- Interface for what a Logger should do, assume we only want to provide a mechanism to write to a file on disk.  Assume that parsing, or reading, the file is left up to app implementation.\r\n- How do we want to deal with error logging and display in different environments?  Development environment would mean much more information could be logged about a given issue, whereas a Production environment would need minimal logging to lessen the impact on the system.\r\n- Ensure that the above systems are independent and loosely coupled to make for easy unit testing.  But, that goes without saying at this point.\r\n","url":"https://api.github.com/repos/cspray/SprayFire/milestones/1"},"updated_at":"2011-12-23T19:02:01Z","state":"open","labels":[{"name":"milestone-issue","url":"https://api.github.com/repos/cspray/SprayFire/labels/milestone-issue","color":"0b02e1"}],"id":2649566,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"closed_at":null,"html_url":"https://github.com/cspray/SprayFire/issues/2","body":"This interface should provide a very simple way to write to a file on disk.  What should be required to satisfy this interface should include:\r\n\r\n- A `__construct()` that requires the passing of a [`SplFileObject`](http://www.php.net/manual/en/class.splfileobject.php) which should have its permissions set to allow writing to the file.  If the file is not writable a `IOFailureException` will be thrown.\r\n- A `write()` method that simply accepts a string message, verifies it is a string or properly casts it to a string and then uses whatever file was passed ","number":2,"url":"https://api.github.com/repos/cspray/SprayFire/issues/2","comments":0,"assignee":{"login":"cspray","id":771345,"url":"https://api.github.com/users/cspray","gravatar_id":"0fd2816e78f6a04d5f8ce0aba1cb42e6","avatar_url":"https://secure.gravatar.com/avatar/0fd2816e78f6a04d5f8ce0aba1cb42e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},"action":"opened"}