rUtilAnts 0.3.0.20110825 → 1.0.0.20120223

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2009 - 2011 Muriel Salvan (murielsalvan@users.sourceforge.net)
2
+ # Copyright (c) 2009 - 2012 Muriel Salvan (muriel@x-aeon.com)
3
3
  # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
4
  #++
5
5
 
@@ -12,10 +12,10 @@ module RUtilAnts
12
12
 
13
13
  # Constructor
14
14
  #
15
- # Parameters:
15
+ # Parameters::
16
16
  # * *iParent* (<em>Wx::Window</em>): The parent
17
17
  # * *iMsg* (_String_): The bug message
18
- # * *iBugTrackerURL* (_String_): The Bug tracker URL
18
+ # * *iBugTrackerURL* (_String_): The Bug tracker URL (can be nil)
19
19
  def initialize(iParent, iMsg, iBugTrackerURL)
20
20
  super(iParent,
21
21
  :title => 'Bug',
@@ -46,7 +46,7 @@ Thanks.",
46
46
  lBSend = Wx::Button.new(self, Wx::ID_ANY, 'Send Bug report')
47
47
  lHCTrackerURL = Wx::HyperlinkCtrl.new(self, Wx::ID_ANY, 'Bug tracker', iBugTrackerURL,
48
48
  :style => Wx::NO_BORDER|Wx::HL_ALIGN_CENTRE|Wx::HL_CONTEXTMENU
49
- )
49
+ ) if (iBugTrackerURL != nil)
50
50
 
51
51
  # Put everything in sizers
52
52
  lMainSizer = Wx::BoxSizer.new(Wx::VERTICAL)
@@ -65,7 +65,7 @@ Thanks.",
65
65
  lTopSizer.add_item(lTopRightSizer, :flag => Wx::GROW, :proportion => 1)
66
66
 
67
67
  lBottomSizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
68
- lBottomSizer.add_item(lHCTrackerURL, :flag => Wx::ALIGN_CENTRE, :proportion => 0)
68
+ lBottomSizer.add_item(lHCTrackerURL, :flag => Wx::ALIGN_CENTRE, :proportion => 0) if (iBugTrackerURL != nil)
69
69
  lBottomSizer.add_item([8,0], :proportion => 1)
70
70
  lBottomSizer.add_item(lBSend, :flag => Wx::ALIGN_CENTRE, :proportion => 0)
71
71
  lBottomSizer.add_item(lBClose, :flag => Wx::ALIGN_CENTRE, :proportion => 0)
@@ -1,36 +1,43 @@
1
1
  #--
2
- # Copyright (c) 2009 - 2011 Muriel Salvan (murielsalvan@users.sourceforge.net)
2
+ # Copyright (c) 2009 - 2012 Muriel Salvan (muriel@x-aeon.com)
3
3
  # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
4
  #++
5
5
 
6
- # This file declares modules that might be shared across several projects.
7
-
8
6
  module RUtilAnts
9
7
 
10
8
  module Logging
11
9
 
12
- # The logger class singleton
13
- class Logger
10
+ # Constants used for GUI dialogs selection
11
+ GUI_WX = 0
14
12
 
15
- # Constants used for GUI dialogs selection
16
- GUI_WX = 0
13
+ # The logger interface, can be used to decorate any class willing to have de
14
+ module LoggerInterface
17
15
 
18
- # Constructor
16
+ # Initializer of the logger variables
19
17
  #
20
- # Parameters:
21
- # * *iLibRootDir* (_String_): The library root directory that will not appear in the logged stack messages
22
- # * *iBugTrackerURL* (_String_): The application's bug tracker URL, used to report bugs
23
- # * *iSilentSTDOut* (_Boolean_): Do we silent normal output (nothing sent to $stdout) ? [optional = false]
24
- # * *iSilentSTDErr* (_Boolean_): Do we silent error output (nothing sent to $stderr) ? [optional = false]
25
- def initialize(iLibRootDir, iBugTrackerURL, iSilentSTDOut = false, iSilentSTDErr = false)
26
- @LibRootDir, @BugTrackerURL = iLibRootDir, iBugTrackerURL
27
- @DebugMode = false
28
- @LogFile = nil
29
- @ErrorsStack = nil
30
- @MessagesStack = nil
31
- @DialogsGUI = nil
32
- @ScreenOutput = (!iSilentSTDOut)
33
- @ScreenOutputErr = (!iSilentSTDErr)
18
+ # Parameters::
19
+ # * *iOptions* (<em>map<Symbol,Object></em>): Options [optional = {}]
20
+ # * *:lib_root_dir* (_String_): The library root directory that will not appear in the logged stack messages [optional = nil]
21
+ # * *:bug_tracker_url* (_String_): The application's bug tracker URL, used to report bugs [optional = nil]
22
+ # * *:mute_stdout* (_Boolean_): Do we silent normal output (nothing sent to $stdout) ? [optional = false]
23
+ # * *:mute_stderr* (_Boolean_): Do we silent error output (nothing sent to $stderr) ? [optional = false]
24
+ # * *:no_dialogs* (_Boolean_): Do we forbid dialogs usage ? [optional = false]
25
+ # * *:debug_mode* (_Boolean_): Do we activate debug mode ? [optional = false]
26
+ # * *:log_file* (_String_): Specify a log file [optional = nil]
27
+ # * *:errors_stack* (<em>list<String></em>): Specify an errors stack [optional = nil]
28
+ # * *:messages_stack* (<em>list<String></em>): Specify a messages stack [optional = nil]
29
+ # * *:gui_for_dialogs* (_Integer_): Specify a GUI constant for dialogs [optional = nil]
30
+ def init_logger(iOptions = {})
31
+ @LibRootDir = iOptions[:lib_root_dir]
32
+ @BugTrackerURL = iOptions[:bug_tracker_url]
33
+ @DebugMode = (iOptions[:debug_mode] == nil) ? false : iOptions[:debug_mode]
34
+ @LogFile = iOptions[:log_file]
35
+ @ErrorsStack = iOptions[:errors_stack]
36
+ @MessagesStack = iOptions[:messages_stack]
37
+ @DialogsGUI = iOptions[:gui_for_dialogs]
38
+ @ScreenOutput = (iOptions[:mute_stdout] == nil) ? true : (!iOptions[:mute_stdout])
39
+ @ScreenOutputErr = (iOptions[:mute_stderr] == nil) ? true : (!iOptions[:mute_stderr])
40
+ @NoDialogs = (iOptions[:no_dialogs] == nil) ? false : iOptions[:no_dialogs]
34
41
  if (!@ScreenOutput)
35
42
  # Test if we can write to stdout
36
43
  begin
@@ -67,80 +74,80 @@ module RUtilAnts
67
74
 
68
75
  # Mute or unmute standard output
69
76
  #
70
- # Parameters:
77
+ # Parameters::
71
78
  # * *iMute* (_Boolean_): Do we mute standard output ? [optional = true]
72
- def muteStdOut(iMute = true)
79
+ def mute_stdout(iMute = true)
73
80
  @ScreenOutput = (!iMute)
74
81
  end
75
82
 
76
83
  # Mute or unmute error output
77
84
  #
78
- # Parameters:
85
+ # Parameters::
79
86
  # * *iMute* (_Boolean_): Do we mute error output ? [optional = true]
80
- def muteStdErr(iMute = true)
87
+ def mute_stderr(iMute = true)
81
88
  @ScreenOutputErr = (!iMute)
82
89
  end
83
90
 
84
91
  # Set the log file to use (can be nil to stop logging into a file)
85
92
  #
86
- # Parameters:
93
+ # Parameters::
87
94
  # * *iFileName* (_String_): Log file name (can be nil)
88
- def setLogFile(iFileName)
95
+ def set_log_file(iFileName)
89
96
  @LogFile = iFileName
90
97
  end
91
98
 
92
99
  # Get the log file used (can be nil)
93
100
  #
94
- # Return:
101
+ # Return::
95
102
  # * _String_: Log file name (can be nil)
96
- def getLogFile
103
+ def get_log_file
97
104
  return @LogFile
98
105
  end
99
106
 
100
107
  # Get the library root dir
101
108
  #
102
- # Return:
109
+ # Return::
103
110
  # * _String_: The library root dir, as defined when initialized
104
- def getLibRootDir
111
+ def get_lib_root_dir
105
112
  return @LibRootDir
106
113
  end
107
114
 
108
115
  # Get the bug tracker URL
109
116
  #
110
- # Return:
117
+ # Return::
111
118
  # * _String_: The bug tracker URL, as defined when initialized
112
- def getBugTrackerURL
119
+ def get_bug_tracker_url
113
120
  return @BugTrackerURL
114
121
  end
115
122
 
116
123
  # Indicate which GUI to be used to display dialogs.
117
124
  #
118
- # Parameters:
125
+ # Parameters::
119
126
  # * *iGUIToUse* (_Integer_): The GUI constant, or nil if no GUI is provided
120
- def setGUIForDialogs(iGUIToUse)
127
+ def set_gui_for_dialogs(iGUIToUse)
121
128
  @DialogsGUI = iGUIToUse
122
129
  end
123
130
 
124
131
  # Set the debug mode
125
132
  #
126
- # Parameters:
133
+ # Parameters::
127
134
  # * *iDebugMode* (_Boolean_): Are we in debug mode ?
128
- def activateLogDebug(iDebugMode)
135
+ def activate_log_debug(iDebugMode)
129
136
  if (@DebugMode != iDebugMode)
130
137
  @DebugMode = iDebugMode
131
138
  if (iDebugMode)
132
- logInfo 'Activated log debug'
139
+ log_info 'Activated log debug'
133
140
  else
134
- logInfo 'Deactivated log debug'
141
+ log_info 'Deactivated log debug'
135
142
  end
136
143
  end
137
144
  end
138
145
 
139
146
  # Is debug mode activated ?
140
147
  #
141
- # Return:
148
+ # Return::
142
149
  # * _Boolean_: Are we in debug mode ?
143
- def debugActivated?
150
+ def debug_activated?
144
151
  return @DebugMode
145
152
  end
146
153
 
@@ -148,9 +155,9 @@ module RUtilAnts
148
155
  # If set to nil, errors will be displayed as they appear.
149
156
  # If set to a stack, errors will silently be added to the list.
150
157
  #
151
- # Parameters:
158
+ # Parameters::
152
159
  # * *iErrorsStack* (<em>list<String></em>): The stack of errors, or nil to unset it
153
- def setLogErrorsStack(iErrorsStack)
160
+ def set_log_errors_stack(iErrorsStack)
154
161
  @ErrorsStack = iErrorsStack
155
162
  end
156
163
 
@@ -158,44 +165,44 @@ module RUtilAnts
158
165
  # If set to nil, messages will be displayed as they appear.
159
166
  # If set to a stack, messages will silently be added to the list.
160
167
  #
161
- # Parameters:
168
+ # Parameters::
162
169
  # * *iMessagesStack* (<em>list<String></em>): The stack of messages, or nil to unset it
163
- def setLogMessagesStack(iMessagesStack)
170
+ def set_log_messages_stack(iMessagesStack)
164
171
  @MessagesStack = iMessagesStack
165
172
  end
166
173
 
167
174
  # Log an exception
168
175
  # This is called when there is a bug due to an exception in the program. It has been set in many places to detect bugs.
169
176
  #
170
- # Parameters:
177
+ # Parameters::
171
178
  # * *iException* (_Exception_): Exception
172
179
  # * *iMsg* (_String_): Message to log
173
- def logExc(iException, iMsg)
174
- logBug("#{iMsg}
180
+ def log_exc(iException, iMsg)
181
+ log_bug("#{iMsg}
175
182
  Exception: #{iException}
176
183
  Exception stack:
177
- #{getSimpleCaller(iException.backtrace, caller).join("\n")}
184
+ #{get_simple_caller(iException.backtrace, caller).join("\n")}
178
185
  ...")
179
186
  end
180
187
 
181
188
  # Log a bug
182
189
  # This is called when there is a bug in the program. It has been set in many places to detect bugs.
183
190
  #
184
- # Parameters:
191
+ # Parameters::
185
192
  # * *iMsg* (_String_): Message to log
186
- def logBug(iMsg)
193
+ def log_bug(iMsg)
187
194
  lCompleteMsg = "Bug: #{iMsg}
188
195
  Stack:
189
- #{getSimpleCaller(caller[0..-2]).join("\n")}"
196
+ #{get_simple_caller(caller[0..-2]).join("\n")}"
190
197
  # Log into stderr
191
198
  if (@ScreenOutputErr)
192
199
  $stderr << "!!! BUG !!! #{lCompleteMsg}\n"
193
200
  end
194
201
  if (@LogFile != nil)
195
- logFile(lCompleteMsg)
202
+ log_file(lCompleteMsg)
196
203
  end
197
204
  # Display Bug dialog
198
- if (showModalWxAvailable?)
205
+ if (show_modal_wx_available?)
199
206
  # We require the file here, as we hope it will not be required often
200
207
  require 'rUtilAnts/GUI/BugReportDialog'
201
208
  showModal(GUI::BugReportDialog, nil, lCompleteMsg, @BugTrackerURL) do |iModalResult, iDialog|
@@ -203,8 +210,9 @@ Stack:
203
210
  end
204
211
  else
205
212
  # Use normal platform dependent message, if the platform has been initialized (otherwise, stick to $stderr)
206
- if (defined?($rUtilAnts_Platform_Info) != nil)
207
- $rUtilAnts_Platform_Info.sendMsg("A bug has just occurred.
213
+ if ((defined?(sendMsg) != nil) and
214
+ (!@NoDialogs))
215
+ sendMsg("A bug has just occurred.
208
216
  Normally you should never see this message, but this application is not bug-less.
209
217
  We are sorry for the inconvenience caused.
210
218
  If you want to help improving this application, please inform us of this bug:
@@ -222,20 +230,20 @@ Details:
222
230
  # Log an error.
223
231
  # Those errors can be normal, as they mainly depend on external factors (lost connection, invalid user file...)
224
232
  #
225
- # Parameters:
233
+ # Parameters::
226
234
  # * *iMsg* (_String_): Message to log
227
- def logErr(iMsg)
235
+ def log_err(iMsg)
228
236
  lMsg = "!!! ERR !!! #{iMsg}"
229
237
  # Log into stderr
230
238
  if (@ScreenOutputErr)
231
239
  $stderr << "#{lMsg}\n"
232
240
  end
233
241
  if (@LogFile != nil)
234
- logFile(lMsg)
242
+ log_file(lMsg)
235
243
  end
236
244
  # Display dialog only if we are not redirecting messages to a stack
237
245
  if (@ErrorsStack == nil)
238
- if (showModalWxAvailable?)
246
+ if (show_modal_wx_available?)
239
247
  showModal(Wx::MessageDialog, nil,
240
248
  iMsg,
241
249
  :caption => 'Error',
@@ -243,9 +251,10 @@ Details:
243
251
  ) do |iModalResult, iDialog|
244
252
  # Nothing to do
245
253
  end
246
- elsif (defined?($rUtilAnts_Platform_Info) != nil)
254
+ elsif ((defined?(sendMsg) != nil) and
255
+ (!@NoDialogs))
247
256
  # Use normal platform dependent message, if the platform has been initialized (otherwise, stick to $stderr)
248
- $rUtilAnts_Platform_Info.sendMsg(iMsg)
257
+ sendMsg(iMsg)
249
258
  end
250
259
  else
251
260
  @ErrorsStack << iMsg
@@ -255,20 +264,20 @@ Details:
255
264
  # Log a normal message to the user
256
265
  # This is used to display a simple message to the user
257
266
  #
258
- # Parameters:
267
+ # Parameters::
259
268
  # * *iMsg* (_String_): Message to log
260
- def logMsg(iMsg)
269
+ def log_msg(iMsg)
261
270
  # Log into stderr
262
271
  if (@ScreenOutput)
263
272
  $stdout << "#{iMsg}\n"
264
273
  end
265
274
  if (@LogFile != nil)
266
- logFile(iMsg)
275
+ log_file(iMsg)
267
276
  end
268
277
  # Display dialog only if we are not redirecting messages to a stack
269
278
  if (@MessagesStack == nil)
270
279
  # Display dialog only if showModal exists and that we are currently running the application
271
- if (showModalWxAvailable?)
280
+ if (show_modal_wx_available?)
272
281
  showModal(Wx::MessageDialog, nil,
273
282
  iMsg,
274
283
  :caption => 'Notification',
@@ -276,9 +285,10 @@ Details:
276
285
  ) do |iModalResult, iDialog|
277
286
  # Nothing to do
278
287
  end
279
- elsif (defined?($rUtilAnts_Platform_Info) != nil)
288
+ elsif ((defined?(sendMsg) != nil) and
289
+ (!@NoDialogs))
280
290
  # Use normal platform dependent message, if the platform has been initialized (otherwise, stick to $stderr)
281
- $rUtilAnts_Platform_Info.sendMsg(iMsg)
291
+ sendMsg(iMsg)
282
292
  end
283
293
  else
284
294
  @MessagesStack << iMsg
@@ -288,47 +298,47 @@ Details:
288
298
  # Log an info.
289
299
  # This is just common journal.
290
300
  #
291
- # Parameters:
301
+ # Parameters::
292
302
  # * *iMsg* (_String_): Message to log
293
- def logInfo(iMsg)
303
+ def log_info(iMsg)
294
304
  # Log into stdout
295
305
  if (@ScreenOutput)
296
306
  $stdout << "#{iMsg}\n"
297
307
  end
298
308
  if (@LogFile != nil)
299
- logFile(iMsg)
309
+ log_file(iMsg)
300
310
  end
301
311
  end
302
312
 
303
313
  # Log a warning.
304
314
  # Warnings are not errors but still should be highlighted.
305
315
  #
306
- # Parameters:
316
+ # Parameters::
307
317
  # * *iMsg* (_String_): Message to log
308
- def logWarn(iMsg)
318
+ def log_warn(iMsg)
309
319
  # Log into stdout
310
320
  lMsg = "!!! WARNING !!! - #{iMsg}"
311
321
  if (@ScreenOutput)
312
322
  $stdout << "#{lMsg}\n"
313
323
  end
314
324
  if (@LogFile != nil)
315
- logFile(lMsg)
325
+ log_file(lMsg)
316
326
  end
317
327
  end
318
328
 
319
329
  # Log a debugging info.
320
330
  # This is used when debug is activated
321
331
  #
322
- # Parameters:
332
+ # Parameters::
323
333
  # * *iMsg* (_String_): Message to log
324
- def logDebug(iMsg)
334
+ def log_debug(iMsg)
325
335
  # Log into stdout
326
336
  if (@DebugMode)
327
337
  if (@ScreenOutput)
328
338
  $stdout << "#{iMsg}\n"
329
339
  end
330
340
  if (@LogFile != nil)
331
- logFile(iMsg)
341
+ log_file(iMsg)
332
342
  end
333
343
  end
334
344
  end
@@ -337,9 +347,9 @@ Details:
337
347
 
338
348
  # Check if Wx dialogs environment is set up
339
349
  #
340
- # Return:
350
+ # Return::
341
351
  # * _Boolean_: Can we use showModal ?
342
- def showModalWxAvailable?
352
+ def show_modal_wx_available?
343
353
  return (
344
354
  (defined?(showModal) != nil) and
345
355
  (@DialogsGUI == GUI_WX)
@@ -348,9 +358,9 @@ Details:
348
358
 
349
359
  # Log a message in the log file
350
360
  #
351
- # Parameters:
361
+ # Parameters::
352
362
  # * *iMsg* (_String_): The message to log
353
- def logFile(iMsg)
363
+ def log_file(iMsg)
354
364
  File.open(@LogFile, 'a+') do |oFile|
355
365
  oFile << "#{Time.now.gmtime.strftime('%Y/%m/%d %H:%M:%S')} - #{iMsg}\n"
356
366
  end
@@ -359,12 +369,12 @@ Details:
359
369
  # Get a stack trace in a simple format:
360
370
  # Remove @LibRootDir paths from it.
361
371
  #
362
- # Parameters:
372
+ # Parameters::
363
373
  # * *iCaller* (<em>list<String></em>): The caller, or nil if no caller
364
374
  # * *iReferenceCaller* (<em>list<String></em>): The reference caller: we will not display lines from iCaller that also belong to iReferenceCaller [optional = nil]
365
- # Return:
375
+ # Return::
366
376
  # * <em>list<String></em>): The simple stack
367
- def getSimpleCaller(iCaller, iReferenceCaller = nil)
377
+ def get_simple_caller(iCaller, iReferenceCaller = nil)
368
378
  rSimpleCaller = []
369
379
 
370
380
  if (iCaller != nil)
@@ -384,13 +394,18 @@ Details:
384
394
  # Here we have either one of the indexes that is -1, or the indexes point to different lines between the caller and its reference.
385
395
  lCaller = iCaller[0..lIdxCaller+1]
386
396
  end
387
- lCaller.each do |iCallerLine|
388
- lMatch = iCallerLine.match(/^(.*):([[:digit:]]*):in (.*)$/)
389
- if (lMatch == nil)
390
- # Did not get which format. Just add it blindly.
391
- rSimpleCaller << iCallerLine
392
- else
393
- rSimpleCaller << "#{File.expand_path(lMatch[1]).gsub(@LibRootDir, '')}:#{lMatch[2]}:in #{lMatch[3]}"
397
+ if (@LibRootDir == nil)
398
+ rSimpleCaller = lCaller
399
+ else
400
+ # Remove @LibRootDir from each entry
401
+ lCaller.each do |iCallerLine|
402
+ lMatch = iCallerLine.match(/^(.*):([[:digit:]]*):in (.*)$/)
403
+ if (lMatch == nil)
404
+ # Did not get which format. Just add it blindly.
405
+ rSimpleCaller << iCallerLine
406
+ else
407
+ rSimpleCaller << "#{File.expand_path(lMatch[1]).gsub(@LibRootDir, '')}:#{lMatch[2]}:in #{lMatch[3]}"
408
+ end
394
409
  end
395
410
  end
396
411
  end
@@ -400,174 +415,29 @@ Details:
400
415
 
401
416
  end
402
417
 
403
- # The following methods are meant to be included in a class to be easily useable.
404
-
405
- # Initialize the logging features
406
- #
407
- # Parameters:
408
- # * *iLibRootDir* (_String_): The library root directory that will not appear in the logged stack messages
409
- # * *iBugTrackerURL* (_String_): The application's bug tracker URL, used to report bugs
410
- # * *iSilentOutputs* (_Boolean_): Do we silent outputs (nothing sent to $stdout or $stderr) ? [optional = false]
411
- def self.initializeLogging(iLibRootDir, iBugTrackerURL, iSilentOutputs = false)
412
- $rUtilAnts_Logging_Logger = RUtilAnts::Logging::Logger.new(iLibRootDir, iBugTrackerURL, iSilentOutputs)
413
- # Add the module accessible from the Object namespace
414
- Object.module_eval('include RUtilAnts::Logging')
415
- end
416
-
417
- # Mute or unmute standard output
418
- #
419
- # Parameters:
420
- # * *iMute* (_Boolean_): Do we mute standard output ? [optional = true]
421
- def muteStdOut(iMute = true)
422
- $rUtilAnts_Logging_Logger.muteStdOut(iMute)
423
- end
424
-
425
- # Mute or unmute error output
426
- #
427
- # Parameters:
428
- # * *iMute* (_Boolean_): Do we mute error output ? [optional = true]
429
- def muteStdErr(iMute = true)
430
- $rUtilAnts_Logging_Logger.muteStdErr(iMute)
431
- end
432
-
433
- # Set the log file to use (can be nil to stop logging into a file)
434
- #
435
- # Parameters:
436
- # * *iFileName* (_String_): Log file name (can be nil)
437
- def setLogFile(iFileName)
438
- $rUtilAnts_Logging_Logger.setLogFile(iFileName)
439
- end
440
-
441
- # Get the log file used (can be nil)
442
- #
443
- # Return:
444
- # * _String_: Log file name (can be nil)
445
- def getLogFile
446
- return $rUtilAnts_Logging_Logger.getLogFile
447
- end
448
-
449
- # Get the library root dir
450
- #
451
- # Return:
452
- # * _String_: The library root dir, as defined when initialized
453
- def getLibRootDir
454
- return $rUtilAnts_Logging_Logger.getLibRootDir
455
- end
456
-
457
- # Get the bug tracker URL
458
- #
459
- # Return:
460
- # * _String_: The bug tracker URL, as defined when initialized
461
- def getBugTrackerURL
462
- return $rUtilAnts_Logging_Logger.getBugTrackerURL
463
- end
464
-
465
- # Indicate which GUI to be used to display dialogs.
466
- #
467
- # Parameters:
468
- # * *iGUIToUse* (_Integer_): The GUI constant, or nil if no GUI is provided
469
- def setGUIForDialogs(iGUIToUse)
470
- $rUtilAnts_Logging_Logger.setGUIForDialogs(iGUIToUse)
471
- end
472
-
473
- # Set the debug mode
474
- #
475
- # Parameters:
476
- # * *iDebugMode* (_Boolean_): Are we in debug mode ?
477
- def activateLogDebug(iDebugMode)
478
- $rUtilAnts_Logging_Logger.activateLogDebug(iDebugMode)
479
- end
480
-
481
- # Is debug mode activated ?
482
- #
483
- # Return:
484
- # * _Boolean_: Are we in debug mode ?
485
- def debugActivated?
486
- return $rUtilAnts_Logging_Logger.debugActivated?
487
- end
488
-
489
- # Set the stack of the errors to fill.
490
- # If set to nil, errors will be displayed as they appear.
491
- # If set to a stack, errors will silently be added to the list.
492
- #
493
- # Parameters:
494
- # * *iErrorsStack* (<em>list<String></em>): The stack of errors, or nil to unset it
495
- def setLogErrorsStack(iErrorsStack)
496
- $rUtilAnts_Logging_Logger.setLogErrorsStack(iErrorsStack)
497
- end
498
-
499
- # Set the stack of the messages to fill.
500
- # If set to nil, messages will be displayed as they appear.
501
- # If set to a stack, messages will silently be added to the list.
502
- #
503
- # Parameters:
504
- # * *iMessagesStack* (<em>list<String></em>): The stack of messages, or nil to unset it
505
- def setLogMessagesStack(iMessagesStack)
506
- $rUtilAnts_Logging_Logger.setLogMessagesStack(iMessagesStack)
507
- end
508
-
509
- # Log an exception
510
- # This is called when there is a bug due to an exception in the program. It has been set in many places to detect bugs.
511
- #
512
- # Parameters:
513
- # * *iException* (_Exception_): Exception
514
- # * *iMsg* (_String_): Message to log
515
- def logExc(iException, iMsg)
516
- $rUtilAnts_Logging_Logger.logExc(iException, iMsg)
517
- end
518
-
519
- # Log a bug
520
- # This is called when there is a bug in the program. It has been set in many places to detect bugs.
521
- #
522
- # Parameters:
523
- # * *iMsg* (_String_): Message to log
524
- def logBug(iMsg)
525
- $rUtilAnts_Logging_Logger.logBug(iMsg)
526
- end
527
-
528
- # Log an error.
529
- # Those errors can be normal, as they mainly depend on external factors (lost connection, invalid user file...)
530
- #
531
- # Parameters:
532
- # * *iMsg* (_String_): Message to log
533
- def logErr(iMsg)
534
- $rUtilAnts_Logging_Logger.logErr(iMsg)
535
- end
418
+ # A stand-alone logger
419
+ class Logger
536
420
 
537
- # Log a normal message to the user
538
- # This is used to display a simple message to the user
539
- #
540
- # Parameters:
541
- # * *iMsg* (_String_): Message to log
542
- def logMsg(iMsg)
543
- $rUtilAnts_Logging_Logger.logMsg(iMsg)
544
- end
421
+ include RUtilAnts::Logging::LoggerInterface
545
422
 
546
- # Log an info.
547
- # This is just common journal.
548
- #
549
- # Parameters:
550
- # * *iMsg* (_String_): Message to log
551
- def logInfo(iMsg)
552
- $rUtilAnts_Logging_Logger.logInfo(iMsg)
553
- end
423
+ # Constructor
424
+ #
425
+ # Parameters::
426
+ # * *iOptions* (<em>map<Symbol,Object></em>): Options (see LoggerInterface for details) [optional = {}]
427
+ def initialize(iOptions = {})
428
+ init_logger(iOptions)
429
+ end
554
430
 
555
- # Log a warning.
556
- # Warnings are not errors but still should be highlighted.
557
- #
558
- # Parameters:
559
- # * *iMsg* (_String_): Message to log
560
- def logWarn(iMsg)
561
- $rUtilAnts_Logging_Logger.logWarn(iMsg)
562
431
  end
563
432
 
564
- # Log a debugging info.
565
- # This is used when debug is activated
433
+ # Set Object as a logger.
566
434
  #
567
- # Parameters:
568
- # * *iMsg* (_String_): Message to log
569
- def logDebug(iMsg)
570
- $rUtilAnts_Logging_Logger.logDebug(iMsg)
435
+ # Parameters::
436
+ # * *iOptions* (<em>map<Symbol,Object></em>): Options (see RUtilAnts::Logging::Logger::initialize documentation for options) [optional = {}]
437
+ def self.install_logger_on_object(iOptions = {})
438
+ require 'rUtilAnts/SingletonProxy'
439
+ RUtilAnts::make_singleton_proxy(RUtilAnts::Logging::LoggerInterface, Object)
440
+ init_logger(iOptions)
571
441
  end
572
442
 
573
443
  end