Journalisation ASP.NET Core 1.0
J'ai ASP.NET de Base de l'api web projet. Maintenant, je veux journal les erreurs et les événements. J'ai déjà utilisé ELMAH dans mon projet, mais il semble qu'en apparence, n'est pas disponible pour ASP.NET de Base. J'ai évoqué ce lien Officiel pour la configuration de la journalisation par défaut du service fourni par Microsoft. Je ne vois nulle part comment ai-je pu enregistrer ces logs dans le fichier texte ou dans la base de données.
Si ASP.NET Noyau par défaut de la fonctionnalité de journalisation, je me demande pourquoi devrais-je utiliser d'autres outils comme elmah, log4net. Donc encore une fois, quand j'ai cherché pour l'article qui met en œuvre de journalisation par défaut pour enregistrer les journaux en db ou en fichier texte, je ne pouvais pas trouver tout. Est-il possible que la façon dont nous pouvons enregistrer les logs dans le fichier à l'aide de ASP.NET core, construit en soutien à l'exploitation forestière?
Je suis actuellement en utilisant Serilog qui fonctionne parfaitement et aussi téléchargé suiv pour afficher les journaux gracieusement dans le navigateur. Cependant, je me demande encore comment pourrais-je obtenir le même à l'aide intégrée dans asp.net core fonctionnalité de journalisation.
Fichier journal à l'aide Serilog:
Journaux affichés à l'aide de Seq:
source d'informationauteur Avi-B
Vous devez vous connecter pour publier un commentaire.
Par défaut, le ASP.NET Core journalisation si on se base sur la norme .NET de Base les abstractions et les implémentations pour des abstractions. Le lien que vous fournissez est exactement ce que vous voulez à suivre pour la consommation de la journalisation des services. Ces va écrire sur la sortie standard (fenêtre de sortie) par exemple lors du débogage.
La partie que vous cherchez est spécifiquement la
web.config
. Considérez les points suivants:Vous êtes à la recherche pour le
stdoutLogEnabled
etstdoutLogFile
.Et
Voir aussi La publication de IIS pour plus de détails sur la ASP.NET Core module.
ASP.NET de Base du sous-système d'enregistrement n'a pas encore de fournir un fichier de l'enregistreur, si création d'un est en cours de discussion.
Au moment de la rédaction, à l'aide de Serilog ou NLog à cette fin est le chemin à parcourir.
J'ai juste fait un tas de recherche sur ce sujet pour un billet de blog sur ASP.NET de Base de l'exploitation forestière. J'ai regardé les construit dans l'exploitation forestière ainsi que NLog, SeriLog, et log4net.
Fondamentalement, ce que j'ai trouvé est construit dans le ILoggerFactory fonctionne très bien mais n'a un flagrant problème: de ne pas écrire ce fichier. Il supporte la Console de Débogage, ETW, et certains fournisseurs d'autres, mais pas les fichiers. Je suppose, parce que les fichiers sont assez compliqué quand vous devez commencer à s'inquiéter max taille des fichiers, les rotations, et tous les autres trucs qui va avec.
La construit la connexion fonctionne très bien .NET internes et depuis ils n'ont pas besoin d'écrire dans des fichiers, ce n'est vraiment pas une limitation pour la .NET de l'équipe. Serilog et NLog à la fois de fournir un peu d'extensions pour permettre l'écriture de fichier. Bien sûr, ces bibliothèques fournissent également beaucoup plus de fonctionnalités à travers le conseil d'administration.
Serilog de l'extension nécessite une ligne de code et il ajoute le fichier de journalisation. Vous pouvez lire à ce sujet ici: https://github.com/serilog/serilog-extensions-logging-file
Voici mon billet de blog sur ASP.NET Base de journalisation si cela aide: https://stackify.com/asp-net-core-logging-what-changed/
Je dirais que si vous avez vraiment simple d'enregistrement, vous pouvez faire de l'intégré dans la journalisation de travail, avec l'extension de Fichier. Dès que vous le souhaitez pour obtenir toutes les fonctions avancées comme le contrôle de la format de sortie, la connexion à des services externes, rotation de fichier, taille maximale de fichier, etc, vous souhaitez utiliser NLog ou Serilog.
Vous ne pouvez pas vraiment comparer le intégré à l'enregistrement dans les ASP.NET de Base à ELMAH. ASP.NET de Base enregistrement est une simple structure de journalisation, où vous avez besoin de lui dire quoi pour vous connecter et quand. ELMAH automatiquement des captures de toutes les exceptions non gérées et les journaux beaucoup de l'information contextuelle sur la faute de demande. Le Seq évier effectivement mis en œuvre une partie de ce comportement, qui fait des informations supplémentaires comme Protocole, Iddemande et similaires disponibles par le biais de Seq, mais ce n'est pas quelque chose que vous sortir de la boîte avec ASP.NET la journalisation.
ASP.NET la journalisation est encore tout nouveau, pourquoi bûcherons pour les autres cadres et les destinations vont commencer à apparaître. Je suis sûr que le fichier d'enregistrement sera mis en œuvre prochainement et ELMAH sera également porté à ASP.NET de Base pour vous. Pour plus d'informations, consultez mon blog: ASP.NET Base de Journalisation Tutoriel.