mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-10 08:20:16 +00:00
Add a function to disable all logging at runtime (#528)
* Implement a runtime disable for all logging * Update the changelog * Inline the function * Flip the scrip
This commit is contained in:
parent
884a4f56f1
commit
16ce3c9a33
@ -11,6 +11,7 @@
|
||||
- Remove re-entrant access to self.view when applying initial pending state. [Adlai Holler](https://github.com/Adlai-Holler) [#510](https://github.com/TextureGroup/Texture/pull/510)
|
||||
- Small improvements in ASCollectionLayout [Huy Nguyen](https://github.com/nguyenhuy) [#509](https://github.com/TextureGroup/Texture/pull/509) [#513](https://github.com/TextureGroup/Texture/pull/513)
|
||||
- Fix retain cycle between ASImageNode and PINAnimatedImage [Phil Larson](https://github.com/plarson) [#520](https://github.com/TextureGroup/Texture/pull/520)
|
||||
- Change the API for disabling logging from a compiler flag to a runtime C function ASDisableLogging(). [Adlai Holler](https://github.com/Adlai-Holler) [#528](https://github.com/TextureGroup/Texture/pull/528)
|
||||
- Table and collection views to consider content inset when calculating (default) element size range [Huy Nguyen](https://github.com/nguyenhuy) [#525](https://github.com/TextureGroup/Texture/pull/525)
|
||||
|
||||
##2.4
|
||||
|
||||
@ -21,16 +21,27 @@
|
||||
#import <os/log.h>
|
||||
#import <os/activity.h>
|
||||
|
||||
#ifndef ASEnableLogs
|
||||
#define ASEnableLogs 1
|
||||
#endif
|
||||
|
||||
#ifndef ASEnableVerboseLogging
|
||||
#define ASEnableVerboseLogging 0
|
||||
#endif
|
||||
|
||||
ASDISPLAYNODE_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* Disable all logging.
|
||||
*
|
||||
* You should only use this function if the default log level is
|
||||
* annoying during development. By default, logging is run at
|
||||
* the appropriate system log level (see the os_log_* functions),
|
||||
* so you do not need to worry generally about the performance
|
||||
* implications of log messages.
|
||||
*
|
||||
* For example, virtually all log messages generated by Texture
|
||||
* are at the `debug` log level, which the system
|
||||
* disables in production.
|
||||
*/
|
||||
void ASDisableLogging();
|
||||
|
||||
/// Log for general node events e.g. interfaceState, didLoad.
|
||||
#define ASNodeLogEnabled 1
|
||||
os_log_t ASNodeLog();
|
||||
|
||||
@ -11,27 +11,41 @@
|
||||
//
|
||||
|
||||
#import <AsyncDisplayKit/ASLog.h>
|
||||
#import <stdatomic.h>
|
||||
|
||||
static atomic_bool __ASLogEnabled = ATOMIC_VAR_INIT(YES);
|
||||
|
||||
void ASDisableLogging() {
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
atomic_store(&__ASLogEnabled, NO);
|
||||
});
|
||||
}
|
||||
|
||||
ASDISPLAYNODE_INLINE BOOL ASLoggingIsEnabled() {
|
||||
return atomic_load(&__ASLogEnabled);
|
||||
}
|
||||
|
||||
os_log_t ASNodeLog() {
|
||||
return ASCreateOnce((ASEnableLogs && ASNodeLogEnabled) ? as_log_create("org.TextureGroup.Texture", "Node") : OS_LOG_DISABLED);
|
||||
return (ASNodeLogEnabled && ASLoggingIsEnabled()) ? ASCreateOnce(as_log_create("org.TextureGroup.Texture", "Node")) : OS_LOG_DISABLED;
|
||||
}
|
||||
|
||||
os_log_t ASLayoutLog() {
|
||||
return ASCreateOnce((ASEnableLogs && ASLayoutLogEnabled) ? as_log_create("org.TextureGroup.Texture", "Layout") : OS_LOG_DISABLED);
|
||||
return (ASLayoutLogEnabled && ASLoggingIsEnabled()) ? ASCreateOnce(as_log_create("org.TextureGroup.Texture", "Layout")) : OS_LOG_DISABLED;
|
||||
}
|
||||
|
||||
os_log_t ASCollectionLog() {
|
||||
return ASCreateOnce((ASEnableLogs && ASCollectionLogEnabled) ? as_log_create("org.TextureGroup.Texture", "Collection") : OS_LOG_DISABLED);
|
||||
return (ASCollectionLogEnabled && ASLoggingIsEnabled()) ?ASCreateOnce(as_log_create("org.TextureGroup.Texture", "Collection")) : OS_LOG_DISABLED;
|
||||
}
|
||||
|
||||
os_log_t ASDisplayLog() {
|
||||
return ASCreateOnce((ASEnableLogs && ASDisplayLogEnabled) ? as_log_create("org.TextureGroup.Texture", "Display") : OS_LOG_DISABLED);
|
||||
return (ASDisplayLogEnabled && ASLoggingIsEnabled()) ?ASCreateOnce(as_log_create("org.TextureGroup.Texture", "Display")) : OS_LOG_DISABLED;
|
||||
}
|
||||
|
||||
os_log_t ASImageLoadingLog() {
|
||||
return ASCreateOnce((ASEnableLogs && ASImageLoadingLogEnabled) ? as_log_create("org.TextureGroup.Texture", "ImageLoading") : OS_LOG_DISABLED);
|
||||
return (ASImageLoadingLogEnabled && ASLoggingIsEnabled()) ? ASCreateOnce(as_log_create("org.TextureGroup.Texture", "ImageLoading")) : OS_LOG_DISABLED;
|
||||
}
|
||||
|
||||
os_log_t ASMainThreadDeallocationLog() {
|
||||
return ASCreateOnce((ASEnableLogs && ASMainThreadDeallocationLogEnabled) ? as_log_create("org.TextureGroup.Texture", "MainDealloc") : OS_LOG_DISABLED);
|
||||
return (ASMainThreadDeallocationLogEnabled && ASLoggingIsEnabled()) ? ASCreateOnce(as_log_create("org.TextureGroup.Texture", "MainDealloc")) : OS_LOG_DISABLED;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user