簡體   English   中英

如何使用擴展方法將消息寫入日志文件或控制台

[英]How to write a message to log file or console using extension method

這是我的代碼

class Program
{
    static void Main(string[] args)
    {
        (from d in new DirectoryInfo("E:\\")
    .GetDirectories() select d.Name)
             .WriteToConsole(Logger.WriteToLog , true);
            //    .WriteToConsole(Console.WriteLine);
    }
}

public static class Logger
{
    public static void WriteToLog(dynamic data)
    {
        string filePath = string.Format("{0}\\log.txt", Environment.CurrentDirectory);
        var stream = File.Create(filePath);
        stream.Write(Encoding.UTF8.GetBytes(data), 0, Encoding.UTF8.GetByteCount(data));
        stream.Flush();
        stream.Close();
    }
}

public static class WriteExtensions
{
    public static void WriteToConsole<T1>(this IEnumerable<T1> data , Action<T1> action, bool carelist = false)
    {
        if (carelist)
        {
            // all i want is to invoke action by sending data rather than
    // one by one
            return;
        }
        foreach (var item in data)
        {
            action.Invoke(item);
        }
    }
}

問題是我們可以一行一行地寫入控制台..但是要寫入文件,我想一次全部放入..任何幫助..謝謝

您的日志記錄要求非常復雜。 因此,我建議已經存在的日志記錄框架 它們具有您需要的功能,但也許還沒有意識到您需要它們。 支持登錄到控制台和日志文件,可以在配置文件中啟用它,而不必直接在代碼中啟用。 同時記錄到多個目標。 還基於日志的嚴重性進行過濾。 當日期更改或文件超過限制時,也將過渡到另一個文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM