Puoi implementare un sistema di registrazione personalizzato.
Oltre a eseguire la registrazione utilizzando notifiche predefinite, è possibile implementare un sistema di registrazione che utilizza i messaggi di registro e i messaggi generati da TVSDK. Per ulteriori informazioni sulle notifiche predefinite, consulta Il sistema di notifica. Puoi utilizzare questi registri per risolvere eventuali problemi relativi alle applicazioni del lettore e per comprendere meglio il flusso di lavoro di riproduzione e pubblicità.
La registrazione personalizzata utilizza un’istanza singleton condivisa del PSDKPTLogFactory
, che fornisce un meccanismo per registrare i messaggi su più logger. Puoi definire e aggiungere (registrare) uno o più logger alla PTLogFactory
. Questo consente di definire più logger con implementazioni personalizzate, ad esempio un logger di console, un logger web o un logger di cronologia della console.
TVSDK genera messaggi di registro per molte delle sue attività, che PTLogFactory
inoltra a tutti i logger registrati. L'applicazione può inoltre generare messaggi di registro personalizzati, che vengono inoltrati a tutti i logger registrati. Ogni logger può filtrare i messaggi e intraprendere le azioni appropriate.
Esistono due implementazioni per PTLogFactory
:
PTLogFactory
.Per registrarsi per l’ascolto dei registri:
Implementare una classe personalizzata che segue il protocollo PTLogger
:
@implementation PTConsoleLogger
+ (PTConsoleLogger *) consoleLogger {
return [[[PTConsoleLogger alloc] init] autorelease];
}
- (void)logEntry:(PTLogEntry *)entry {
//Log the message to the console using NSLog
NSLog(@"[%@] %@", entry.tag, entry.message);
}
@end
Per registrare l'istanza per la ricezione delle voci di registrazione, aggiungere un'istanza di PTLogger
al PTLoggerFactory
:
PTConsoleLogger *logger = [PTConsoleLogger consoleLogger];
// Either use the addLogger method:
[[PTLogFactory sharedInstance] addLogger:(logger)]
//Or replace the preceding line with this macro for ease of use
//PTLogAddLogger(logger);
Di seguito è riportato un esempio di filtro dei registri utilizzando PTLogEntry
tipo:
@implementation PTConsoleLogger
+ (PTConsoleLogger *) consoleLogger {
return [[[PTConsoleLogger alloc] init] autorelease];
}
- (id) init {
self = [super init];
if (self) {
self.logLevel = PTLogEntryTypeInfo;
}
return self;
}
- (void)logEntry:(PTLogEntry *) entry {
//Filtering the entry by log level
if (entry.type < _logLevel) {
return;
}
//Log the message to the console using NSLog NSLog(@"[%@] %@", entry.tag, entry.message);
}
@end
Per registrarsi e ascoltare i registri:
Crea un nuovo PTLogEntry
e aggiungerlo a thePTLogFactory
:
È possibile creare manualmente un'istanza di PTLogEntry
e aggiungerlo al PTLogFactory
ha condiviso un'istanza o utilizza una delle macro per eseguire la stessa attività.
Di seguito è riportato un esempio di registrazione tramite PTLogDebug
macro:
// The following line creates an instance of PTLogEntry with type PTLogEntryDebug,
// tag "DEBUG_PLAYBACK", and message "Playback has started".
// Then the PTLogEntry is automatically added to the PTLogFactory
PTLogDebug(@"[DEBUG_PLAYBACK] Playback has started");