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
|
<?php /* * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/) * Copyright (C) 2002-2005 The Nucleus Group * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * (see nucleus/documentation/index.html#license for more info) */ /** * Actionlog class for Nucleus * * @license http://nucleuscms.org/license.txt GNU General Public License * @copyright Copyright (C) 2002-2005 The Nucleus Group * @version $Id: ACTIONLOG.php,v 1.11.2.1 2005/08/15 10:50:12 dekarma Exp $ */ define('ERROR',1); // only errors define('WARNING',2); // errors and warnings define('INFO',3); // info, errors and warnings define('DEBUG',4); // everything $CONF['LogLevel'] = INFO;
class ACTIONLOG {
/** * (Static) Method to add message to log */ function add($level, $message) { global $member, $CONF; if ($CONF['LogLevel'] < $level) return; if ($member && $member->isLoggedIn()) $message = "[" . $member->getDisplayName() . "] " . $message; $message = addslashes($message); // add slashes $timestamp = date("Y-m-d H:i:s",time()); // format timestamp $query = "INSERT INTO " . sql_table('actionlog') . " (timestamp, message) VALUES ('$timestamp', '$message')"; sql_query($query); ACTIONLOG::trimLog(); } /** * (Static) Method to clear log */ function clear() { global $manager; $query = 'DELETE FROM ' . sql_table('actionlog');
$manager->notify('ActionLogCleared',array()); return sql_query($query); } function trimLog() { static $checked = 0; // only check once per run if ($checked) return; // trim $checked = 1; $iTotal = quickQuery('SELECT COUNT(*) AS result FROM ' . sql_table('actionlog')); // if size > 500, drop back to about 250 $iMaxSize = 500; $iDropSize = 250; if ($iTotal > $iMaxSize) { $tsChop = quickQuery('SELECT timestamp as result FROM ' . sql_table('actionlog') . ' ORDER BY timestamp DESC LIMIT '.$iDropSize.',1'); sql_query('DELETE FROM ' . sql_table('actionlog') . ' WHERE timestamp < \'' . $tsChop . '\''); } }
}
?>
|