flnews_post_proc 1.47 → 1.48

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfa512fc050add2e3d6ecddebcc81f1af8256880e6c94faa8b4f7ecba24275e7
4
- data.tar.gz: 3932c50c12c18db1a8f277d69e29bf537b0d8ba6708d000c8f87fe97da1c993d
3
+ metadata.gz: 9a019c52dac602a5b00c71131e8b44a61769604a08035b7afad305a27c5d43a0
4
+ data.tar.gz: 7f5a69f62df2a18fefe9f0f5f499d7960d40b751b4bda67f26a88f91034ac941
5
5
  SHA512:
6
- metadata.gz: 4c84d0aa2a73c86ea0b43d4e35fb0073fd84c019848a4de8d8a4c876814e2d8fb23d54583c3c3ad708ab2191bffb95c510225c160ec785334e574f683d69e906
7
- data.tar.gz: 32a8ed4b8641f2a44d93f665d726425a766e6cdb2b5491b5f80512935114c7f2c6154c26ede009ef07b05c597c84aa7482211a47114e3172e90673fb533e59d6
6
+ metadata.gz: fe1d5fee2fffc214f8aa96b34e4886b3c2e7b16a71dd2ac99b8df214528d53c43df8b425fe4b21d4edf58e691e6cd5f497e09ed12a81129dd0f0e883fcf9ab76
7
+ data.tar.gz: 40f0b45424e01cc6b034aeeb4a7729bb0a499e231eb0001a60d762e4f1952964090dacda102fb87215ed66786e7e2887c471c95cc930018b469df669d16915b1
data/bin/flnews_post_proc CHANGED
@@ -33,7 +33,6 @@ self.extend(BasicLogging)
33
33
 
34
34
  msg = PROGNAME.dup << ' ' << PROGVERSION << ' starting'
35
35
  msg = "–––––– " << msg << " ––––––"
36
- clear_log
37
36
  info msg
38
37
  # Get a configuration
39
38
  config = Configuration::instance
data/lib/basic_logging.rb CHANGED
@@ -66,12 +66,12 @@ module BasicLogging
66
66
 
67
67
  # set the log target
68
68
  def set_target(tg)
69
- if !tg || tg.strip.empty?
70
- @@target = nil
71
- elsif tg.respond_to?(:to_io)
69
+ if tg.respond_to?(:to_io)
72
70
  @@target = tg
73
71
  elsif(!File::exist?(tg) || ( File.file?(tg) && File.writable?(tg) ) )
74
72
  @@target = File.open(tg, 'w+')
73
+ elsif !tg || tg.respond_to?(:to_str) && tg.strip.empty?
74
+ @@target = nil
75
75
  else
76
76
  STDERR.puts __FILE__.dup << ': ERROR : target ' << tg << ' cannot be set'
77
77
  STDERR.puts "Keeping old target " << @@target.inspect
@@ -106,7 +106,7 @@ module BasicLogging
106
106
  # Clear the log (-file)
107
107
  def clear_log
108
108
  if @@target && @@target.respond_to?(:truncate)
109
- @@target.truncate(0)
109
+ lock_target{ @@target.truncate(0) }
110
110
  end
111
111
  end
112
112
 
@@ -119,12 +119,26 @@ module BasicLogging
119
119
 
120
120
  private
121
121
 
122
+ def lock_target(&block)
123
+ begin
124
+ if @@target.respond_to?(:flock)
125
+ @@target.flock(File::LOCK_EX)
126
+ block.call
127
+ @@target.flock(File::LOCK_UN)
128
+ elsif @@target.respond_to?(:to_io)
129
+ block.call
130
+ end
131
+ rescue => ex
132
+ STDERR.puts __FILE__.dup << ": ERROR : cannot lock target (" << ex.message << ")"
133
+ end
134
+ end
135
+
122
136
  # 1 format_log for all loggers.
123
137
  def format_log(message, mlevel)
124
138
  if @@target
125
139
  # indicate if a registered class or the registered object of a class is calling.
126
140
  name = self.class == Class ? self.name.dup << ' [class]' : self.class.name
127
- @@target.puts '' << name << ' ' << mlevel.to_s << ' ' << Time.now.strftime("%H:%M:%S:%6N") << ': ' << message.gsub("\n", "\n |")
141
+ lock_target{@@target.puts '' << name << ' ' << mlevel.to_s << ' ' << Time.now.strftime("%H:%M:%S:%6N") << ': ' << message.gsub("\n", "\n |")}
128
142
  end
129
143
  end
130
144
  end
data/lib/configuration.rb CHANGED
@@ -119,8 +119,11 @@ class Configuration
119
119
  @keys = @conf.keys
120
120
  clevel = @conf[:LOG_LEVEL]
121
121
  set_level clevel
122
- set_target @conf[:DEBUG_LOG]
123
- debug('log target and -level set: ' << @@log_level.to_s << ', ' << @@target.path)
122
+ target_string = @conf[:DEBUG_LOG]
123
+ set_target (target_string == 'STDOUT' ? STDOUT : target_string)
124
+ # clear the log file.
125
+ clear_log
126
+ debug('log target and -level set: ' << @@log_level.to_s << ', ' << target_string)
124
127
  rescue Exception => ex
125
128
  msg = ex.message
126
129
  error msg
data/lib/version.rb CHANGED
@@ -14,8 +14,9 @@
14
14
  =end
15
15
 
16
16
  PROGNAME = 'flnews_post_proc'
17
- PROGVERSION = "1.47"
17
+ PROGVERSION = "1.48"
18
18
  AUTHORS = "Michael Uplawski"
19
19
  EMAIL = "michael.uplawski@uplawski.eu"
20
20
  YEARS = "2023 - 2024"
21
- SUMMARY = "superfluous output in Headers eliminated"
21
+ SUMMARY = "\tConcurrent access to the log file\n\tLog cleared upon setting log target"
22
+ SUMMARY << "\n\t\"STDOUT\" allowed as log target"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flnews_post_proc
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.47'
4
+ version: '1.48'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Uplawski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-25 00:00:00.000000000 Z
11
+ date: 2024-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diffy
@@ -85,5 +85,6 @@ requirements: []
85
85
  rubygems_version: 3.5.3
86
86
  signing_key:
87
87
  specification_version: 4
88
- summary: superfluous output in Headers eliminated
88
+ summary: Concurrent access to the log file Log cleared upon setting log target "STDOUT"
89
+ allowed as log target
89
90
  test_files: []