Blame view

sources/3rdparty/phpdocx/lib/log4php/appenders/LoggerAppenderConsole.php 3.13 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
  <?php
  /**
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements. See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License. You may obtain a copy of the License at
   *
   *	   http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  /**
   * LoggerAppenderConsole appends log events either to the standard output 
   * stream (php://stdout) or the standard error stream (php://stderr).
   * 
   * **Note**: Use this Appender with command-line php scripts. On web scripts 
   * this appender has no effects.
   *
   * This appender uses a layout.
   *
   * ## Configurable parameters: ##
   * 
   * - **target** - the target stream: "stdout" or "stderr"
   * 
   * @version $Revision: 1343601 $
   * @package log4php
   * @subpackage appenders
   * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
   * @link http://logging.apache.org/log4php/docs/appenders/console.html Appender documentation
   */
   class LoggerAppenderConsole extends LoggerAppender {
  
  	/** The standard otuput stream.  */
  	const STDOUT = 'php://stdout';
  	
  	/** The standard error stream.*/
  	const STDERR = 'php://stderr';
  
  	/** The 'target' parameter. */
  	protected $target = self::STDOUT;
  	
  	/**
  	 * Stream resource for the target stream.
  	 * @var resource
  	 */
  	protected $fp = null;
  
  	public function activateOptions() {
  		$this->fp = fopen($this->target, 'w');
  		if(is_resource($this->fp) && $this->layout !== null) {
  			fwrite($this->fp, $this->layout->getHeader());
  		}
  		$this->closed = (bool)is_resource($this->fp) === false;
  	}
  	
  	
  	public function close() {
  		if($this->closed != true) {
  			if (is_resource($this->fp) && $this->layout !== null) {
  				fwrite($this->fp, $this->layout->getFooter());
  				fclose($this->fp);
  			}
  			$this->closed = true;
  		}
  	}
  
  	public function append(LoggerLoggingEvent $event) {
  		if (is_resource($this->fp) && $this->layout !== null) {
  			fwrite($this->fp, $this->layout->format($event));
  		}
  	}
  	
  	/**
  	 * Sets the 'target' parameter.
  	 * @param string $target
  	 */
  	public function setTarget($target) {
  		$value = trim($target);
  		if ($value == self::STDOUT || strtoupper($value) == 'STDOUT') {
  			$this->target = self::STDOUT;
  		} elseif ($value == self::STDERR || strtoupper($value) == 'STDERR') {
  			$this->target = self::STDERR;
  		} else {
  			$target = var_export($target);
  			$this->warn("Invalid value given for 'target' property: [$target]. Property not set.");
  		}
  	}
  	
  	/**
  	 * Returns the value of the 'target' parameter.
  	 * @return string
  	 */
  	public function getTarget() {
  		return $this->target;
  	}
  }