J'ai mis en œuvre une approche pour le suivi des requêtes SQL à partir d'EF Core conformément à cet article: https://docs.Microsoft.com/en-us/ef/core/miscivers/logging . Et rencontrez des problèmes avec le traçage des paramètres de requête. Lorsque je reçois un événement Log dans toutes les valeurs de DbParameterLogData, je ne vois que le point d'interrogation au lieu des valeurs réelles que j'ai transmises à la requête.
J'utilise VS 2015. Merci!
Il s'agit du comportement par défaut d'EF Core (remplir le DbParameterLogData.Value
propriété avec "?"
).
Pour obtenir les valeurs réelles des paramètres, vous devez activer enregistrement des données sensibles en utilisant DbContextOptionsBuilder.EnableSensitiveDataLogging
méthode:
Permet aux données d'application d'être incluses dans les messages d'exception, la journalisation, etc. Cela peut inclure les valeurs affectées aux propriétés de vos instances d'entité, les valeurs des paramètres pour les commandes envoyées à la base de données , et d'autres données de ce type. Vous ne devez activer cet indicateur que si vous disposez des mesures de sécurité appropriées en fonction de la sensibilité de ces données.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.EnableSensitiveDataLogging();
// ...
}