simc / logger

Small, easy to use and extensible logger which prints beautiful logs.
https://pub.dev/packages/logger
MIT License
1.07k stars 129 forks source link

Unhandled Exception: Invalid argument(s): Logger has already been closed #130

Open vadrian89 opened 2 years ago

vadrian89 commented 2 years ago

Hello,

Is there any way to test if the Logger was closed or not? Making the instance variable nullable and then using null-aware operator ?. to access it's methods doesn't work.

I am logging API requests and this happens when the repository object is closed, because sometimes the connection is still up when this happens, but the Logger object is closed alread.y

This is how I clean up my repository object:

Future<void> close() async {
    _logger?.i("Closing repository $this");
    dio?.close(force: true);
    await _resultStreamController.close();
    _logger?.close();
  }

As you can see I force close the dio client yet I still get an exception.

It would be helpful if there would be a public getter for "_active" variable.

haarts commented 2 years ago

The _active field is indeed private.

But I am not sure when this exception is called. You call in your code close somewhere and a bit further down you call a method on the global _logger, is that right?

I would move to suggest that it is that flow that is not optimal.