flnews_post_proc 1.47 → 1.48

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.
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: []