Ticket UUID: | 856280 | |||
Title: | Add deletion callbacks to logger | |||
Type: | RFE | Version: | None | |
Submitter: | mic42 | Created on: | 2003-12-08 15:55:08 | |
Subsystem: | log | Assigned To: | davidw | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2003-12-18 06:18:27 | |
Resolution: | Closed By: | davidw | ||
Closed on: | 2003-12-17 23:18:27 | |||
Description: |
At the moment there is no (public) way to do a clean shutdown of the logger system. If one uses a custom logproc that opens files etc. it is not possible to detect the correct time a logfile should be closed etc. So a mechanism to associate a destructor with the logging service would be very nice to cleanup things, without extra bookkeeping. Either a new subcommand of ${log} or as an option to logger::init, the procs should be called when a delete operation is performed, walking the tree from the children to the root of the tree. Michael | |||
User Comments: |
davidw added on 2003-12-18 06:18:27:
Logged In: YES user_id=240 Closing this bug after CVS commits to add the requested feature. davidw added on 2003-12-16 22:46:56: Logged In: YES user_id=240 Ok, I updated it in CVS. I'll leave the bug open until I update the man page and you are happy with the new behavior. mic42 added on 2003-12-16 16:35:35: Logged In: YES user_id=302287 I looked at the patch. Two comments: 1. In most extensions callbacks are executed in the global scope via uplevel (think of bind and fileevents) 2. it would be nicer if delcmd could be a script, as otherwise one needed interp alias to curry extra arguments (like channel names of the logging channel to close etc.) So perhaps change: variable delcallback logger::walk [namespace current] delete catch { $delcallback [namespace current] } namespace delete [namespace current] to: variable delcallback logger::walk [namespace current] delete catch { uplevel #0 $delcallback [namespace current] } namespace delete [namespace current] Otherwise it works fine. Michael davidw added on 2003-12-16 06:23:03: File Added - 70679: latest.diff davidw added on 2003-12-16 06:23:00: Logged In: YES user_id=240 Try the following patch and let me know if it's what you need. Thanks! mic42 added on 2003-12-14 23:19:55: Logged In: YES user_id=302287 Something like it, yes. Preferably bevor the namespace is finally deleted.. davidw added on 2003-12-14 04:17:10: Logged In: YES user_id=240 Good idea. Just to be clear, you need something like: proc foobar ...... ${loggerinstance}::setdeletecallback foobar That is then called when that logger has 'delete' called? |
Attachments:
- latest.diff [download] added by davidw on 2003-12-16 06:23:03. [details]