Comments (3)
Interesting, ok. I do think this is a bit of a strange case, so I'm not too keen to support it directly. There should be a few different things you can do to handle it yourself though:
- Use loglevel within require. Add it as a dep to the relevant code, or put in new blocks depending on it where necessary. This is definitely the 'right' way of doing it, if you can.
require(['./path/to/loglevel.js', function (log) {
log.warn("hi");
});
- Use require to make Loglevel global. Bit messy (nicer to just use loglevel with require directly), but quick and effective. Does have some async gotchas that you'll have to watch out for (log won't be available immediately, until the indeterminate time when RequireJS is finished loading it and setting it up.
require(['./path/to/loglevel.js', function (log) {
window.log = log;
});
- Disable Require briefly when loading loglevel, either with the below, or by just putting the script tag for loglevel above the script tag for RequireJS.
<script>
window.disabledDefine = define;
window.define = undefined;
</script>
<script src="/path/to/loglevel.js"></script>
<script>
window.define = disabledDefine;
</script>
Does that help at all?
from loglevel.
Interesting ideas. Totally agree this is an edge case, but good to have some ideas to think about.
Here's some thoughts:
- Agree this is the correct way, but only one of our N clients uses require. We'd have to have something in our code saying if require do x, if amd do y, if neither do z. So it's slightly more complicated, but probably the correct way for us to do it.
- We're actually using it in noConflict mode (we're creating one Global and everything we add to our clients resides within that, including the logging), but I like this is a potential alternative. I might give this one a try as it's the simplest for our use case.
- We can't change the order of the scripts, because our client will decide that. But it's interesting to think of disabling it temporarily. This feels like quite a nice backup plan if 2 doesn't work.
Thank you for the ideas, I'm happy for you to close this if you're unlikely to support it.
from loglevel.
Closing this; I don't think I want to support this directly. If you do find a nice way to do this, either externally or in a small clean way within loglevel I'd be interested to hear it, but otherwise I'm going to leave this be for now. Thanks for raising it though, definitely an interesting point.
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.