looking for recommendation: which thread safe logger library?

Danilo codedan at aol.com
Wed Jul 12 09:47:26 UTC 2023


On Wednesday, 12 July 2023 at 05:27:27 UTC, mw wrote:
> But what's wrong with my code? the strange compiler error?

Might be a bug/issue in the logger module.

`sharedLog` uses the `shared` attribute,
but the base class for everything ("abstract class Logger")
does not use the `shared` attribute anywhere.

- 
https://github.com/dlang/phobos/blob/master/std/logger/core.d#L516C22-L516C22

It works when you cast away the `shared` attribute from 
`sharedLog`,
so I think that's the problem.

```d
import std.stdio;
import std.logger;

void main() {

     stdThreadLocalLog = new FileLogger(stderr);
     stdThreadLocalLog.trace("local msg");

     //-----------------------------------------------

     sharedLog = cast(shared)new FileLogger(stderr);

     //sharedLog.trace("shared msg");                              
             // ERROR
     (cast()sharedLog).trace("shared msg");                        
             // WORKS, cast away 'shared'

     //sharedLog.memLogFunctions!(LogLevel.trace).logImpl("shared 
msg");       // ERROR
     
(cast()sharedLog).memLogFunctions!(LogLevel.trace).logImpl("shared msg"); // WORKS, cast away 'shared'
}
```


More information about the Digitalmars-d-learn mailing list