Changeset 2 for trac_plugins/logviewer
- Timestamp:
- 04/12/06 16:55:54 (3 years ago)
- Location:
- trac_plugins/logviewer/0.10/logviewer
- Files:
-
- 1 added
- 6 modified
-
__init__.py (modified) (1 diff)
-
admin.py (modified) (5 diffs)
-
defaults.py (added)
-
htdocs/css/logs.css (modified) (1 diff)
-
templates/log_admin.cs (modified) (3 diffs)
-
templates/logs.cs (modified) (1 diff)
-
web_ui.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trac_plugins/logviewer/0.10/logviewer/__init__.py
r1 r2 1 from defaults import * 1 2 from web_ui import * 2 3 from admin import * -
trac_plugins/logviewer/0.10/logviewer/admin.py
r1 r2 22 22 from trac.wiki.formatter import wiki_to_html 23 23 from webadmin.web_ui import IAdminPageProvider 24 from logviewer.defaults import ADMIN_FIELDS, get_admin_values 24 25 25 26 import os … … 43 44 def get_admin_pages(self, req): 44 45 if req.perm.has_permission('LOG_ADMIN'): 45 yield ('logviewer', 'Log Viewer', ' defaults', 'Defaults')46 yield ('logviewer', 'Log Viewer', 'logdefaults', 'Defaults') 46 47 47 48 def process_admin_request(self, req, cat, page, path_info): … … 53 54 req.hdf['logadmin.page'] = page 54 55 55 admin_fields = { 56 'log_dir' : '.', 57 'log_name_fmt' : '%Y%m%d.log', 58 'timestamp_sep' : '|', 59 # 'post_size' : 1024, 60 # 'history_days' : 30, 61 # 'new_bot_link' : 'New Blog Post', 62 # 'first_week_day' : 'SUNDAY', 63 } 56 admin_fields = ADMIN_FIELDS 64 57 if req.method == 'POST': 65 if page == ' defaults':58 if page == 'logdefaults': 66 59 for field in admin_fields.keys(): 67 60 self._set_field_value(req, field) 68 61 self.env.config.save() 69 for field, default in admin_fields.items(): 70 self._get_field_value(req, field, default) 62 fields = get_admin_values(self.env.config, 'logviewer') 63 for key, value in fields.items(): 64 req.hdf['logadmin.' + key] = value 71 65 req.hdf['logadmin.docs'] = wiki_to_html(self._get_docs(page), 72 66 self.env, req) … … 75 69 def _get_docs(self, page): 76 70 """Return the wikitext documentation for the page options. """ 77 if page == 'defaults': 71 doc = '' 72 if page == 'logdefaults': 78 73 doc = """ 79 74 '''Path to the logs directory''':: … … 115 110 pass 116 111 117 def _get_field_value(self, req, field_name, default=None):118 """Get the field from trac.ini and set the hdf appropriately. """119 field = self.env.config.get('logviewer', field_name) or default120 req.hdf['logadmin.' + field_name] = field121 pass122 123 112 # INavigationContributor 124 113 def get_templates_dirs(self): -
trac_plugins/logviewer/0.10/logviewer/htdocs/css/logs.css
r1 r2 26 26 font-weight: bold; 27 27 } 28 29 .log { 30 margin-left: 10%; 31 margin-right: 10; 32 } 33 34 .logtable { 35 } 36 37 .logtable th { 38 font-size: 150%; 39 } 40 41 .log_line { 42 } 43 44 .log_timestamp { 45 padding-right: 5px; 46 } 47 48 .log_message { 49 padding-left: 5px; 50 } 51 52 .log_sys_message { 53 padding-left: 5px; 54 color: gray; 55 } -
trac_plugins/logviewer/0.10/logviewer/templates/log_admin.cs
r1 r2 1 <h2>Log Admin<?cs if logadmin.page == ' defaults' ?> -- Defaults<?cs /if ?></h2>1 <h2>Log Admin<?cs if logadmin.page == 'logdefaults' ?> -- Defaults<?cs /if ?></h2> 2 2 3 <?cs if logadmin.page == ' defaults' ?>3 <?cs if logadmin.page == 'logdefaults' ?> 4 4 <form class="mod" id="modbasic" method="post"> 5 5 <fieldset> … … 10 10 <input type="text" name="log_name_fmt" 11 11 value="<?cs var:logadmin.log_name_fmt ?>" /> 12 </label> 13 </div> 14 <div class="field"> 15 <label>Log Date Format:<br /> 16 <input type="text" name="log_date_fmt" 17 value="<?cs var:logadmin.log_date_fmt ?>" /> 12 18 </label> 13 19 </div> … … 22 28 <input type="text" name="timestamp_sep" 23 29 value="<?cs var:logadmin.timestamp_sep ?>" /> 30 </label> 31 </div> 32 <div class="field"> 33 <label>System Message Indicator:<br/> 34 <input type="text" name="sys_indicator" 35 value="<?cs var:logadmin.sys_indicator ?>" /> 24 36 </label> 25 37 </div> -
trac_plugins/logviewer/0.10/logviewer/templates/logs.cs
r1 r2 36 36 <tr class="log_line"> 37 37 <td class="log_timestamp"><?cs var:lentry.timestamp ?></td> 38 <td class="log_message"><?cs var:lentry.message ?></td> 38 <td class="<?cs alt:lentry.class ?>log_message<?cs /alt ?>" 39 ><?cs var:lentry.message ?></td> 39 40 </tr> 40 41 <?cs /each ?> -
trac_plugins/logviewer/0.10/logviewer/web_ui.py
r1 r2 95 95 now.day 96 96 baseday = datetime.datetime(year, month, day) 97 fields = get_admin_values(self.env.config, 'logviewer') 97 98 log_name_fmt = self.env.config.get('logviewer', 'log_name_fmt') \ 98 99 or '%Y%m%d.log' 100 log_date_fmt = self.env.config.get('logviewer', 'log_date_fmt') \ 101 or '%A, %B %d, %Y' 99 102 log_dir = self.env.config.get('logviewer', 'log_dir') or '.' 100 103 timestamp_sep = self.env.config.get('logviewer', 'timestamp_sep') or '|' 101 104 logname = os.path.join(log_dir, baseday.strftime(log_name_fmt)) 102 105 log = file(logname, 'r') 106 sys_indicator = self.env.config.get('logviewer', 'sys_indicator') or '' 103 107 log_data = [] 104 108 for line in log.readlines(): 105 109 ls = line.split(timestamp_sep) 106 110 if len(ls) > 1: 107 timestamp = ls[0].strip() 111 timestamp = ls[0].strip().split(' ')[1].strip() 108 112 msg = '|'.join(ls[1:]).strip() 109 113 else: 110 114 timestamp = '' 111 115 msg = ls[0].strip() 112 log_data.append({'timestamp' : timestamp, 'message' : msg}) 116 if sys_indicator and (msg.find(sys_indicator) == 0): 117 _class = 'log_sys_message' 118 else: 119 _class = 'log_message' 120 log_line = { 121 'timestamp' : timestamp, 122 'message' : msg, 123 'class' : _class, 124 } 125 log_data.append(log_line) 113 126 continue 114 127 req.hdf['logviewer.entries'] = log_data 115 req.hdf['logviewer.logname'] = logname 128 req.hdf['logviewer.logname'] = "Log for %s for %s (%s) " % \ 129 (logtype, logdate, os.basename(logname)) 116 130 117 131
