Je souhaite que mon application redirige toutes les sorties de débogage et de trace vers un fichier et vers la console.Out lorsqu'un paramètre est fourni à partir de la ligne de commande. Pour Debug.WriteLine()
normaux messages, celui-ci fonctionne déjà:Rediriger la sortie Debug.Assert()
TextWriterTraceListener[] listeners = new TextWriterTraceListener[] {
new TextWriterTraceListener(Console.Out),
new TextWriterTraceListener(debugFile),
};
Debug.Listeners.AddRange(listeners);
Mais il ne fonctionne pas Debug.Assert(condition, "message")
.
Comment puis-je rediriger la sortie de Debug.Assert()
comme je l'ai fait avec la sortie Debug.WriteLine()
?
Edit:
J'ai ajouté une sous-classe de TextWriterTraceListener afin d'envoyer des messages d'assertion a échoué à la console ou un fichier de débogage:
// used to redirect assert debug messages
private class AssertTraceListener : TextWriterTraceListener
{
public AssertTraceListener(TextWriter w) : base(w) {}
public AssertTraceListener(String s) : base(s) {}
public override void Fail(string message)
{
// uncomment if you want the modal dialog
//base.Fail(message);
WriteLine(message);
}
}
Je les appelle comme ça maintenant:
TextWriterTraceListener[] twlisteners = new TextWriterTraceListener[] {
new TextWriterTraceListener(Console.Out),
new TextWriterTraceListener(debugFile)
};
AssertTraceListener[] listeners = new AssertTraceListener[] {
new AssertTraceListener(Console.Out),
new AssertTraceListener(debugFile)
};
Debug.Listeners.Clear();
Debug.Listeners.AddRange(listeners);
Debug.Listeners.AddRange(twlisteners);
debugFile
contient un chemin valide, mais aucun de mes messages (ni messages, ni Debug.WriteLine faire valoir les messages) aller à mon debugfile. Qu'est-ce que je rate?
http://stackoverflow.com/questions/2854024/how-to-prevent-debug-assert-to-show-a-modal- dialog – Vladimir
@VladimirFrolov J'ai modifié ma question maintenant. Je sais, ma première version ressemblait à un doublon, mais je pense que c'est maintenant un peu plus spécialisé et mérite d'être laissé ouvert. – wullxz