Puoi implementare un tuo sistema di registrazione.
Oltre a registrare utilizzando notifiche predefinite, puoi implementare un sistema di registrazione che utilizza i messaggi di log e i messaggi generati da TVSDK. Per ulteriori informazioni sulle notifiche predefinite, vedere Sistema di notifica. È possibile utilizzare questi registri per risolvere i problemi delle applicazioni del lettore e per fornire una migliore comprensione del flusso di lavoro di riproduzione e pubblicità.
La registrazione personalizzata utilizza un'istanza singleton condivisa di PSDKPTLogFactory
, che fornisce un meccanismo per registrare i messaggi a più logger. Puoi definire e aggiungere (registrare) uno o più logger al PTLogFactory
. Questo consente di definire più logger con implementazioni personalizzate, ad esempio un logger di console, un Registratore web o un Registratore di cronologia della console.
TVSDK genera messaggi di registro per molte delle sue attività, che il PTLogFactory
inoltra a tutti i logger registrati. L’applicazione può inoltre generare messaggi di log personalizzati, che vengono inoltrati a tutti i logger registrati. Ogni logger può filtrare i messaggi e intraprendere le azioni appropriate.
Sono disponibili due implementazioni per PTLogFactory
:
PTLogFactory
.Per registrarsi per l'ascolto dei log:
Implementa 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 ricevere le voci di log, aggiungi un'istanza del 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);
Ecco un esempio di filtraggio dei registri utilizzando il tipo PTLogEntry
:
@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 per ascoltare i log:
Crea un nuovo PTLogEntry
e aggiungilo a thePTLogFactory
:
È possibile creare manualmente un'istanza PTLogEntry
e aggiungerla all'istanza condivisa PTLogFactory
oppure utilizzare una delle macro per eseguire la stessa operazione.
Ecco un esempio di registrazione utilizzando la macro PTLogDebug
:
// 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");