Comments (4)
In general this isn't possible, see the docs for a little more explanation.
In your specific case, you might be in luck though. You can't avoid this if you wrap the logging functions, as you've done here, but you can if you bind()
your extra arguments in. For a message prefix like you're using, you can do that with something like:
return rawMethod.bind(console, colors.blue(String(loggerName)))
That will pass colors.blue(String(loggerName))
as an implicit first argument on all calls, making log.warn("msg")
equivalent to console.warn(colors.blue(String(loggerName)), "msg")
. Does that work for you?
(Sorry, posted half-finished and closed this by accident!)
from loglevel.
Thanks for the quick response! When I tried your solution, the log is not shown in the console.
import log from 'loglevel';
const originalFactory = log.methodFactory;
log.methodFactory = (methodName, level, loggerName) => {
const rawMethod = originalFactory(methodName, level, loggerName);
return function (message) {
// rawMethod.apply(`${colors.blue(String(loggerName))}: ${message}`);
return rawMethod.bind(
console,
`${colors.blue(String(loggerName))}: ${message}`,
);
};
};
if (IS_DEV) {
log.setLevel('debug');
} else {
log.setLevel('info');
}
from loglevel.
Ah, no - bind
returns a changed function, which means that you don't need the wrapper function any more. The full example should look like this:
import log from 'loglevel';
const originalFactory = log.methodFactory;
log.methodFactory = (methodName, level, loggerName) => {
const rawMethod = originalFactory(methodName, level, loggerName);
return rawMethod.bind(
console,
colors.blue(String(loggerName))
);
};
if (IS_DEV) {
log.setLevel('debug');
} else {
log.setLevel('info');
}
The only way to ensure your wrapper's code doesn't appear as the source of the logging is to remove the wrapper entirely.
from loglevel.
Nice! It works!!! Deeply appreciate your help!
from loglevel.
Related Issues (20)
- Programmatic log levels HOT 1
- Configurable persistence HOT 4
- methodFactory logLevel parametr has always same value HOT 2
- Show filename and line of logging code HOT 2
- Would you consider deprecating in favor of Roarr? HOT 2
- loglevel print duplicate log in React component HOT 5
- Is it possible to import Loglevel as an ES module in client-side javascript? HOT 5
- Possibility to save log output to file HOT 4
- current npm web page for loglevel shows no documentation at all HOT 3
- LogLevel output doesn't show when running in a test HOT 11
- LogLevel `trace`, `debug` and `info` not shown anymore on Google Chrome HOT 2
- Log to a file HOT 1
- Feature/Enhancement: add a level between 'debug' and 'trace' HOT 1
- Is it possible to enable multiple plugins? HOT 2
- how to send to logs server? HOT 1
- Couldnt locate documention or plugins to format logged payload as JSON (compatible with Datadog etc) HOT 2
- Why do I have to configure the log in every typescript file? HOT 12
- The name of the file the log has been generated and the line number is broken when using a plugin HOT 2
- Cleanup/modernization of developer test/build tooling HOT 8
- Cannot set property trace of #<Object> which has only a getter HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from loglevel.