ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilLog Class Reference

logging More...

+ Inheritance diagram for ilLog:
+ Collaboration diagram for ilLog:

Public Member Functions

 ilLog ($a_log_path, $a_log_file, $a_tag="", $a_enabled=true, $a_log_level=NULL)
 constructor More...
 
 setLogLevel ($a_log_level)
 set global log level More...
 
 checkLogLevel ($a_log_level)
 determine log level More...
 
 setLogFormat ($a_format)
 
 getLogFormat ()
 
 setPath ($a_str)
 
 setFilename ($a_str)
 
 setTag ($a_str)
 
 writeLanguageLog ($a_topic, $a_lang_key)
 special language checking routine More...
 
 writeWarning ($a_message)
 special warning message More...
 
 logError ($a_code, $a_msg)
 this function is automatically called by class.ilErrorHandler in case of an error To log manually please use $this::write @access public More...
 
 write ($a_msg, $a_log_level=NULL)
 
 logStack ($a_message='')
 
 dump ($a_var, $a_log_level=NULL)
 Dump a variable to the log. More...
 
 __destruct ()
 
 delete ()
 delete logfile More...
 

Data Fields

 $path
 
 $filename
 
 $tag
 
 $log_format
 
 $FATAL
 
 $WARNING
 
 $MESSAGE
 
 $fp = false
 

Private Member Functions

 open ()
 Open log file. More...
 

Detailed Description

logging

this class provides a logging feature to the application this class is easy to use. call the constructor with e.g. $log = new Log(); you can give a filename if you want, else the defaultfilename is used.

Author
Peter Gabriel pgabr.nosp@m.iel@.nosp@m.datab.nosp@m.ay.d.nosp@m.e
Version
Id
class.ilLog.php 16024 2008-02-19 13:07:07Z akill

Definition at line 18 of file class.ilLog.php.

Constructor & Destructor Documentation

◆ __destruct()

ilLog::__destruct ( )

Reimplemented in ilWACLog.

Definition at line 308 of file class.ilLog.php.

309 {
310 @fclose($this->fp);
311 }

Member Function Documentation

◆ checkLogLevel()

ilLog::checkLogLevel (   $a_log_level)

determine log level

@access private

Parameters
integerlog level
Returns
integer checked log level

Definition at line 116 of file class.ilLog.php.

117 {
118 if (empty($a_log_level))
119 return $this->default_log_level;
120
121 $level = (int) $a_log_level;
122
123 if ($a_log_level != (int) $a_log_level)
124 return $this->default_log_level;
125
126 return $level;
127 }

Referenced by write().

+ Here is the caller graph for this function:

◆ delete()

ilLog::delete ( )

delete logfile

Definition at line 318 of file class.ilLog.php.

319 {
320 if (@is_file($this->path."/".$this->filename))
321 {
322 @unlink($this->path."/".$this->filename);
323 }
324 }

◆ dump()

ilLog::dump (   $a_var,
  $a_log_level = NULL 
)

Dump a variable to the log.

Parameters

return

Definition at line 285 of file class.ilLog.php.

286 {
287 $this->write(print_r($a_var, true), $a_log_level);
288 }
write($a_msg, $a_log_level=NULL)

References write().

+ Here is the call graph for this function:

◆ getLogFormat()

ilLog::getLogFormat ( )

Definition at line 134 of file class.ilLog.php.

135 {
136 return $this->log_format;
137 }

References $log_format.

Referenced by write().

+ Here is the caller graph for this function:

◆ ilLog()

ilLog::ilLog (   $a_log_path,
  $a_log_file,
  $a_tag = "",
  $a_enabled = true,
  $a_log_level = NULL 
)

constructor

set the filename

Parameters
string
Returns
boolean @access public
Exceptions
ilLogException

Definition at line 64 of file class.ilLog.php.

65 {
66 // init vars
67 include_once './Services/Logging/classes/public/class.ilLogLevel.php';
68
69 $this->FATAL = ilLogLevel::CRITICAL;
70 $this->WARNING = ilLogLevel::WARNING;
71 $this->MESSAGE = ilLogLevel::INFO;
72
73 $this->default_log_level= $this->WARNING;
74 $this->current_log_level = $this->setLogLevel($a_log_level);
75
76 $this->path = ($a_log_path) ? $a_log_path : ILIAS_ABSOLUTE_PATH;
77 $this->filename = ($a_log_file) ? $a_log_file : "ilias.log";
78 $this->tag = ($a_tag == "") ? "unknown" : $a_tag;
79 $this->enabled = (bool) $a_enabled;
80
81 $this->setLogFormat(@date("[y-m-d H:i:s] ")."[".$this->tag."] ");
82
83 $this->open();
84
85 }
setLogFormat($a_format)
setLogLevel($a_log_level)
set global log level
Definition: class.ilLog.php:94
open()
Open log file.
const ILIAS_ABSOLUTE_PATH

References $WARNING, ilLogLevel\CRITICAL, ILIAS_ABSOLUTE_PATH, ilLogLevel\INFO, open(), setLogFormat(), setLogLevel(), and ilLogLevel\WARNING.

+ Here is the call graph for this function:

◆ logError()

ilLog::logError (   $a_code,
  $a_msg 
)

this function is automatically called by class.ilErrorHandler in case of an error To log manually please use $this::write @access public

Parameters
integererror level code from PEAR_Error
stringerror message
See also
this::write

Definition at line 203 of file class.ilLog.php.

204 {
205 switch ($a_code)
206 {
207 case "3":
208 return; // don't log messages
209 $error_level = "message";
210 break;
211
212 case "2":
213 $error_level = "warning";
214 break;
215
216 case "1":
217 $error_level = "fatal";
218 break;
219
220 default:
221 $error_level = "unknown";
222 break;
223 }
224
225 $this->write("ERROR (".$error_level."): ".$a_msg);
226 }

References write().

+ Here is the call graph for this function:

◆ logStack()

ilLog::logStack (   $a_message = '')

Definition at line 267 of file class.ilLog.php.

268 {
269 try
270 {
271 throw new Exception($a_message);
272 }
273 catch(Exception $e)
274 {
275 $this->write($e->getTraceAsString());
276 }
277 }

References write().

Referenced by write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ open()

ilLog::open ( )
private

Open log file.

Exceptions
ilLogException

Definition at line 294 of file class.ilLog.php.

295 {
296 if(!$this->fp)
297 {
298 $this->fp = @fopen ($this->path."/".$this->filename, "a");
299 }
300
301 if (!$this->fp && $this->enabled)
302 {
303 include_once("./Services/Logging/exceptions/class.ilLogException.php");
304 throw new ilLogException('Unable to open log file for writing. Please check setup path to log file and possible write access.');
305 }
306 }
ILIAS Log exception class.

Referenced by ilLog(), and write().

+ Here is the caller graph for this function:

◆ setFilename()

ilLog::setFilename (   $a_str)

Definition at line 151 of file class.ilLog.php.

152 {
153 $this->filename = $a_str;
154
155 // on filename change reload close current file
156 if($this->fp)
157 {
158 fclose($this->fp);
159 $this->fp = null;
160 }
161 }

◆ setLogFormat()

ilLog::setLogFormat (   $a_format)

Definition at line 129 of file class.ilLog.php.

130 {
131 $this->log_format = $a_format;
132 }

Referenced by ilLog().

+ Here is the caller graph for this function:

◆ setLogLevel()

ilLog::setLogLevel (   $a_log_level)

set global log level

@access private

Parameters
integerlog level
Returns
integer log level

Definition at line 94 of file class.ilLog.php.

95 {
96 switch (strtolower($a_log_level))
97 {
98 case "fatal":
99 return $this->FATAL;
100 case "warning":
101 return $this->WARNING;
102 case "message":
103 return $this->MESSAGE;
104 default:
105 return $this->default_log_level;
106 }
107 }

References $FATAL, $MESSAGE, and $WARNING.

Referenced by ilLog().

+ Here is the caller graph for this function:

◆ setPath()

ilLog::setPath (   $a_str)

Definition at line 139 of file class.ilLog.php.

140 {
141 $this->path = $a_str;
142
143 // on filename change reload close current file
144 if($this->fp)
145 {
146 fclose($this->fp);
147 $this->fp = null;
148 }
149 }

◆ setTag()

ilLog::setTag (   $a_str)

Definition at line 163 of file class.ilLog.php.

164 {
165 $this->tag = $a_str;
166 }

◆ write()

ilLog::write (   $a_msg,
  $a_log_level = NULL 
)
logging 

this method logs anything you want. It appends a line to the given logfile.
Datetime and client id is appended automatically
You may set the log level in each call. Leave blank to use default log level

specified in ilias.ini: [log] level = "<level>" possible values are fatal,warning,message

@access public

Parameters
stringerror message
integerlog level (optional)

Reimplemented in ilWACLog.

Definition at line 242 of file class.ilLog.php.

243 {
244 if ($this->enabled and $this->current_log_level >= $this->checkLogLevel($a_log_level))
245 {
246 $this->open();
247
248 if ($this->fp == false)
249 {
250 //die("Logfile: cannot open file. Please give Logfile Writepermissions.");
251 }
252
253 if (fwrite($this->fp,$this->getLogFormat().$a_msg."\n") == -1)
254 {
255 //die("Logfile: cannot write to file. Please give Logfile Writepermissions.");
256 }
257
258 // note: logStack() calls write() again, so do not make this call
259 // if no log level is given
260 if ($a_log_level == $this->FATAL)
261 {
262 $this->logStack();
263 }
264 }
265 }
checkLogLevel($a_log_level)
determine log level
getLogFormat()
logStack($a_message='')

References checkLogLevel(), getLogFormat(), logStack(), and open().

Referenced by dump(), logError(), logStack(), ilOrgUnitSimpleImportGUI\startImport(), ilOrgUnitSimpleUserImportGUI\startImport(), writeLanguageLog(), and writeWarning().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ writeLanguageLog()

ilLog::writeLanguageLog (   $a_topic,
  $a_lang_key 
)

special language checking routine

only add a log entry to the logfile if there isn't a log entry for the topic

Parameters
string@access public

Definition at line 177 of file class.ilLog.php.

178 {
179 //TODO: go through logfile and search for the topic
180 //only write the log if the error wasn't reported yet
181 $this->write("Language (".$a_lang_key."): topic -".$a_topic."- not present",$this->MESSAGE);
182 }

References write().

+ Here is the call graph for this function:

◆ writeWarning()

ilLog::writeWarning (   $a_message)

special warning message

Parameters
string@access public

Definition at line 190 of file class.ilLog.php.

191 {
192 $this->write("WARNING: ".$a_message);
193 }

References write().

+ Here is the call graph for this function:

Field Documentation

◆ $FATAL

ilLog::$FATAL

Definition at line 36 of file class.ilLog.php.

Referenced by setLogLevel().

◆ $filename

ilLog::$filename

Definition at line 27 of file class.ilLog.php.

◆ $fp

ilLog::$fp = false

Definition at line 52 of file class.ilLog.php.

◆ $log_format

ilLog::$log_format

Definition at line 29 of file class.ilLog.php.

Referenced by getLogFormat().

◆ $MESSAGE

ilLog::$MESSAGE

Definition at line 50 of file class.ilLog.php.

Referenced by setLogLevel().

◆ $path

ilLog::$path

Definition at line 26 of file class.ilLog.php.

◆ $tag

ilLog::$tag

Definition at line 28 of file class.ilLog.php.

◆ $WARNING

ilLog::$WARNING

Definition at line 43 of file class.ilLog.php.

Referenced by ilLog(), and setLogLevel().


The documentation for this class was generated from the following file: