2014-02-07 2 views
0

Запуск консольного приложения. Если bool User - true, я хочу вывести текст в консольное приложение. if bool User is false Я хочу создать файл и вывести текст туда.Создайте текстовый файл и напишите ему, когда bool is false

Работает нормально для true и создает текстовый файл if false, но не сохраняет текст на нем.

Любые идеи?

if (!user) 
{ 
    Console.SetOut(File.CreateText(@".\log" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".log")); 
    OutputHeader(); 
} 

Console.WriteLine("Arg count is " + args.Length.ToString()); 
Console.WriteLine("Show verbose output is = " + verbose.ToString()); 

ответ

0

Я предлагаю вам использовать некоторые протоколирование структуру, как NLog или log4net (оба доступны от NuGet), которая позволяет изменять журнал выхода из конфигурационного файла. Например. для NLog вы можете указать две цели - один для лог-файла с именем даты шаблона, а второй для вывода консоли:

<targets> 
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" 
      layout="${longdate} ${uppercase:${level}} ${message}" /> 
    <target xsi:type="Console" name="c" /> 
</targets> 

Затем вы можете выбрать, какую цель использовать

<logger name="*" minlevel="Trace" writeTo="f" /> 
0

Попробуйте использовать WriteAllText вместо этого. Это просто и просто.

System.IO.File.WriteAllText(string filepath, string text); 

Надеется, что это помогает

0

Вот, скажи мне, если это работает у меня не было времени, чтобы проверить его еще:

if (user!=true) 
{ 
System.IO.File.WriteAllText(@".\log"+ DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+".log", "Arg count is " + args.Length.ToString()+"\nShow verbose output is = " + verbose.ToString()); 
} 

Console.WriteLine("Arg count is " + args.Length.ToString()+"\nShow verbose output is = " + verbose.ToString()+"\n"); 
Смежные вопросы