/[cvs]/nfo/php/libs/net.php.pear/Log/file.php
ViewVC logotype

Annotation of /nfo/php/libs/net.php.pear/Log/file.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Fri Oct 25 15:15:23 2002 UTC (21 years, 10 months ago) by cvsjoko
Branch: MAIN
+ generic logging mechanism via PEAR::Log

1 cvsjoko 1.1 <?php
2     // $Horde: horde/lib/Log/file.php,v 1.4 2000/06/28 21:36:13 jon Exp $
3    
4     /**
5     * The Log_file class is a concrete implementation of the Log::
6     * abstract class which writes message to a text file.
7     *
8     * @author Jon Parise <jon@csh.rit.edu>
9     * @version $Revision: 1.1 $
10     * @since Horde 1.3
11     */
12     class Log_file extends Log {
13    
14     // {{{ properties
15    
16     /** String holding the filename of the logfile. */
17     var $filename = '';
18    
19     /** Integer holding the file handle. */
20     var $fp = '';
21    
22     // }}}
23    
24    
25     // {{{ constructor
26     /**
27     * Constructs a new logfile object.
28     *
29     * @param $log_name The filename of the logfile.
30     * @param $ident (optional) The identity string.
31     * @param $conf (optional) The configuration array.
32     */
33     function Log_file ($log_name, $ident = '', $conf = false) {
34     $this->filename = $log_name;
35     $this->ident = $ident;
36     }
37     // }}}
38    
39    
40     // {{{ open()
41     /**
42     * Opens the logfile for appending, if it has not already been opened.
43     * If the file doesn't already exist, attempt to create it. This is
44     * implicitly called by log(), if necessary.
45     */
46     function open () {
47     if (!$this->opened) {
48     $this->fp = fopen($this->filename, 'a');
49     $this->opened = true;
50     }
51     }
52     // }}}
53    
54     // {{{ close()
55     /**
56     * Closes the logfile, if it is open.
57     */
58     function close () {
59     if ($this->opened) {
60     fclose($this->fp);
61     $this->opened = false;
62     }
63     }
64     // }}}
65    
66     // {{{ log()
67     /**
68     * Writes $message to the currently open logfile. Calls open(), if
69     * necessary. Also, passes the message along to any Log_observer
70     * instances that are observing this Log.
71     *
72     * @param $message The textual message to be logged.
73     * @param $priority (optional) The priority of the message. Valid
74     * values are: LOG_EMERG, LOG_ALERT, LOG_CRIT,
75     * LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, and
76     * LOG_DEBUG. The default is LOG_INFO.
77     */
78     function log ($message, $priority = LOG_INFO) {
79     if (!$this->opened)
80     $this->open();
81    
82     $this->ident && $ident = $this->ident . " ";
83    
84     $entry = sprintf("%s %s[%s] %s\n",
85     strftime("%Y-%m-%d %H:%M:%S"),
86     $ident,
87     Log::priorityToString($priority),
88     $message
89     );
90    
91     if ($this->fp)
92     fwrite($this->fp, $entry);
93    
94     $this->notifyAll(array('priority' => $priority, 'message' => $message));
95     }
96     // }}}
97    
98     }
99    
100     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed