0

所以我试图在我的 C# 项目中的所有文件中使用一个简单的日志记录功能。(visual studio 2010) 我在 vb.net 中制作了这个项目,现在我正在尝试重写它并在 c# 中清理它。我也是 C# 的新手,所以提前道歉。

在 vb.net 中非常简单:

  • 创建一个 .vb 文件
  • 把它放在项目的libraries文件夹中
  • 然后在任何你想在库文件中使用方法的文件中,在顶部放置“Imports”。

太棒了,只有 c# 似乎不允许这样做。我试过“使用”。但智能感知只允许我将“使用 .Library”放在库是类所在文件夹的名称的位置。

经过一些谷歌搜索和研究后,似乎 C# 不允许使用全局方法,我认为这通常是一种不鼓励的做法。

记录方法具有要写入哪个文件以及要附加的消息是什么的输入参数。它不是很长,但我觉得在我想使用它的每个类中重新编写代码是一种浪费。

我可以在使用它的类中创建所说的 utils 类的实例,但我不需要在 vb.net 中这样做。(只需导入,然后该方法就可以使用)

那么我只是在这里分裂头发还是有一种我没有看到或不知道的简单方法来做到这一点?

谢谢!

编辑:应要求添加的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ProjectProgram.Library
{
    public class ApplicationUtilities
    {

    public string homeLogPath = System.Environment.ExpandEnvironmentVariables("%SystemRoot%\\System32\\folderName\\Logs");

    public void toLogFile(string LogName, string logEntry)
    {

        string LogFile = homeLogPath + "\\" + LogName;
        if (!File.Exists(LogFile))
        {
            File.WriteAllText(LogFile, string.Empty, Encoding.UTF8);
        }

        File.AppendAllText(LogFile, DateTime.Now + " " + logEntry + "\n");

    }

}
}

这是我想在另一个类中使用的代码。如何从另一个类调用 toLogFile 方法?

4

2 回答 2

1

制作您的日志记录类及其方法public static,并将其包含在您要使用的所有文件中。然后你可以简单地通过做类似的事情来访问它

  Logger.WriteLine("log message");

或者只是使用像 Log4Net http://logging.apache.org/log4net/这样的库

于 2013-03-06T20:11:31.813 回答
0

您的实用程序类应类似于:

namespace Code.Utilities{
    public class MyUtilities{

        public static void LogString(string input){
            //Do something
        }
    }
}

然后任何其他想要使用 LogString() 的类将类似于:

using Code.Utilities;    

namespace SomeSpace{
     public class SomeClass{
         public void F(string input){
             MyUtilities.LogString(input);
         }
     }    
}
于 2013-03-06T20:08:51.760 回答