untu / comedy

Node.js actor framework.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DEPENDENCY: Winston failing on node 14

rijnhard opened this issue · comments

when running the basic getting started example the following error appears:

(node:290995) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency

followed by a whole trace if you add the --trace-warnings flag.
This was fixed in Winston 2.4.5 but they do recommend moving to Winston 3.

That said, shipping with a logger is crossing concerns...
Libraries shouldn't have baked in loggers, but they can have interface to configure your own logger. for example you can pass a log function handler

import comedy from 'comedy';

comedy.setLogger((category, level, ...msg) => { /*handle however I want*/ });
// or 
comedy.setLoggerFactory((category) => (level, ...msg) => { /* create a logger for each category*/ });

// then the rest of the usage stays exactly the same.

as a side note, if you want to still maintain full backwards-compatible behaviour, then you can detect if Winston is already installed and then preconfigure it as the default log handler, otherwise just default to console.

Hi @rijnhard ! Thank you, that's a very good point! I'll implement that on weekend.

I've released a quick fix for Winston as you mentioned. The fix is available in version 2.1.4.

The logging configurability feature is still to come.

#61

@weekens you are fast! I seldom get such a response from maintainers! thank you

@rijnhard Well, the fix was trivial and you did 100% of the research yourself! :)

The logging configuration functionality won't arrive that fast, I'm afraid :) But that's a needed feature, so I'll be on it.