From: Eric Wong Date: 2017-07-07T07:44:39+00:00 Subject: [ruby-core:81950] Re: [Ruby trunk Bug#13727] Not able to set program_name for new Syslog::Logger melentievm@gmail.com wrote: > Hi! > > Every instance of syslog logger uses same program_name as first initialized one, because they all share single instance of Syslog (https://github.com/ruby/ruby/blob/trunk/ext/syslog/lib/syslog/logger.rb#L195) Yes, this is documented at the top of that file: | NOTE! You can only set the Syslog::Logger program name when you initialize | Syslog::Logger for the first time. This is a limitation of the way | Syslog::Logger uses syslog (and in some ways, a limitation of the way | syslog(3) works). Attempts to change Syslog::Logger's program name after the | first initialization will be ignored. If Ruby Syslog were to support different program names, it would have to repeatedly make calls openlog(3)/closelog(3) C library functions. That would still leave reentrancy + thread-safety problems, and probably small performance ones, too. I suggest using a short program name and perhaps using a context-specific prefix (perhaps stored in Thread.current[]) for each call, instead. Unsubscribe: