Comments (2)
It's a bug.
Let's say you have create three extensions, One
, Two
, and Three
:
const logger = createLogger();
const oneLogger = logger.extend('One');
const twoLogger = logger.extend('Two');
const threeLogger = logger.extend('Three');
oneLogger.debug('1'); // outputs 'One | DEBUG: 1'
twoLogger.debug('2'): // outputs 'Two | DEBUG: 2'
threeLogger.debug('3'): // outputs 'Three | DEBUG: 3'
There's an _enabledExtensions
property, which is initially null
. When null
, all extensions are considered enabled.
Disabling an extension does not modify this property, if it is null
:
logger.disable('One');
oneLogger.debug('1'); // outputs 'One | DEBUG: 1'
twoLogger.debug('2'): // outputs 'Two | DEBUG: 2'
threeLogger.debug('3'): // outputs 'Three | DEBUG: 3'
However, as soon as you explicitly enable one extension, _enabledExtensions
becomes an array (eg. ['One']
). The problem is, this disables all other extensions, which then have to be enabled explicitly.
logger.enable('One');
oneLogger.debug('1'); // outputs 'One | DEBUG: 1'
twoLogger.debug('2'): // no output
threeLogger.debug('3'): // no output
logger.enable('Three');
logger.disable('One');
oneLogger.debug('1'); // no output
twoLogger.debug('2'): // no output
threeLogger.debug('3'): // outputs 'Three | DEBUG: 3'
One way around this is to call enable()
on at least one extension, but that might be unpredictable.
Another way is to pass enabledExtensions: []
to the config. This will initially disable all extensions and you'll have to enable them individually.
const config = {
// ... other config values,
enabledExtensions: [],
};
const logger = createLogger(config);
const oneLogger = logger.extend('One');
const twoLogger = logger.extend('Two');
const threeLogger = logger.extend('Three');
oneLogger.enable();
twoLogger.enable();
oneLogger.debug('1'); // outputs 'One | DEBUG: 1'
twoLogger.debug('2'): // outputs 'Two | DEBUG: 2'
threeLogger.debug('3'): // no output
from react-native-logs.
Fixed with b480c93
from react-native-logs.
Related Issues (20)
- Suggested improvements to fileAsyncTransport. HOT 2
- Bug: function type log arguments are printed as `null` HOT 3
- Type errors with noUncheckedIndexedAccess HOT 2
- extensionColors not working on zsh macOS terminal HOT 1
- In transportOptions I'm Not able generate logs.txt file HOT 7
- I'm not able to generate and save(see) log in file manager (storage) of mobile device HOT 1
- how we can access log.txt file in iOS device HOT 5
- Queue? HOT 1
- Open to adding custom formatting support? HOT 2
- Sentry transporter seems to log always to error despite using info/debug.. HOT 2
- Is it possible to store file in Zip(compressed log.txt file) with in cache directory HOT 1
- NSMallocException - Expo device build fatal crash with FileAsyncTransport HOT 1
- Is there a way to pass types to transport function props? HOT 1
- today date formatting is incorrectly described in the docs HOT 1
- Logging to a log level with undefined transport causes app to crash HOT 2
- Using react-native-logs in a regular 'react' web app? HOT 2
- Date format with using {date-today} HOT 1
- use withScope to sentry's message logging?
- Logs cluttered with unformatted component trees
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 react-native-logs.