2010-06-18 6 views
1

Je voudrais exploiter le système de journalisation DotNetNuke (à la fois la journalisation des événements et la journalisation des exceptions).dotnetnuke enregistrement des événements - Synchrone? Problèmes de vitesse potentiels?

Cependant, je suis préoccupé par les problèmes de performance potentiels si nous commençons à enregistrer trop d'événements.

Le système de journalisation écrit-il les événements dans la base de données de manière asynchrone? Sinon, existe-t-il un moyen efficace d'y arriver? Je détesterais faire attendre l'utilisateur final sur plusieurs écritures de base de données juste pour voir une page.

Merci

Répondre

2

Réponse courte: Cela dépend de votre configuration DNN. Par défaut, la journalisation est synchrone.

réponse détaillée

utilise la journalisation des événements LoggingProvider mis en place dans le web.config.

DotNetNuke est fourni avec DBLoggingProvider et XMLLoggingProvider. Par défaut, DotNetNuke utilise DBLoggingProvider qui écrit dans la table EventLog.

La manière dont cela est fait dépend des paramètres de l'hôte et des paramètres de l'Observateur d'événements du site. Si "Activer le tampon du journal des événements" a coché les paramètres de l'hôte, la consignation doit être asynchrone. Devrait être, puisque la journalisation asynchrone utilise le planificateur, et si le planificateur n'est pas activé ou est arrêté, la journalisation sera immédiate.

La consignation immédiate peut également être appliquée avec la propriété LogInfo.BypassBuffering.

Les paramètres du journal des événements déterminent ce qui va être consigné par type de journal. Si vous utilisez la journalisation des événements dans vos modules, vous devez transmettre le type de journal dans la méthode EventLogController.AddLog. J'utilise généralement EventLogType.HOST_ALERT, car ils sont facilement reconnaissables dans la vue du journal des événements et sont consignés par défaut (contrairement à ADMIN_ALERT).

Pour plus de détails, consultez la mise en œuvre AddLog dans le code source DNN:

DBLoggingProvider.AddLog(ByVal LogInfo As LogInfo) 

Voir aussi: DotNetNuke Host Settings Explained

+0

Grande réponse, merci! –

Questions connexes