1: <?php
2: /**
3: * Slim - a micro PHP 5 framework
4: *
5: * @author Josh Lockhart <info@slimframework.com>
6: * @copyright 2011 Josh Lockhart
7: * @link http://www.slimframework.com
8: * @license http://www.slimframework.com/license
9: * @version 2.2.0
10: * @package Slim
11: *
12: * MIT LICENSE
13: *
14: * Permission is hereby granted, free of charge, to any person obtaining
15: * a copy of this software and associated documentation files (the
16: * "Software"), to deal in the Software without restriction, including
17: * without limitation the rights to use, copy, modify, merge, publish,
18: * distribute, sublicense, and/or sell copies of the Software, and to
19: * permit persons to whom the Software is furnished to do so, subject to
20: * the following conditions:
21: *
22: * The above copyright notice and this permission notice shall be
23: * included in all copies or substantial portions of the Software.
24: *
25: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26: * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28: * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
29: * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
30: * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
31: * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32: */
33: namespace Slim;
34:
35: /**
36: * Log Writer
37: *
38: * This class is used by Slim_Log to write log messages to a valid, writable
39: * resource handle (e.g. a file or STDERR).
40: *
41: * @package Slim
42: * @author Josh Lockhart
43: * @since 1.6.0
44: */
45: class LogWriter
46: {
47: /**
48: * @var resource
49: */
50: protected $resource;
51:
52: /**
53: * Constructor
54: * @param resource $resource
55: * @throws \InvalidArgumentException If invalid resource
56: */
57: public function __construct($resource)
58: {
59: if (!is_resource($resource)) {
60: throw new \InvalidArgumentException('Cannot create LogWriter. Invalid resource handle.');
61: }
62: $this->resource = $resource;
63: }
64:
65: /**
66: * Write message
67: * @param mixed $message
68: * @param int $level
69: * @return int|false
70: */
71: public function write($message, $level = null)
72: {
73: return fwrite($this->resource, (string) $message . PHP_EOL);
74: }
75: }
76: