如果从另一个项目C#application logging

时间:2018-03-19 15:05:00

标签: c# visual-studio logging log4net log4net-configuration

我创建了一个单独的项目,它将维护所有数据访问,模型和日志记录。我正在使用log4net作为日志工具。只有当Logger类文件在项目本身内时,它才能正常工作。

  1. 我有windows表单应用程序“ClearningApp.UI”,其中主要包含应用程序UI和类库项目“CLearningApp.Library”,其中包含DataAccess,Configuration,DatabaseSetup应用程序的其他实用程序。

  2. 我必须从应用程序从UI到库中的所有内容开始记录所有内容,因此我在CLeaningApp.Library中创建了一个名为Logging的文件夹,并创建了一个类Logger

  3. using System.Runtime.CompilerServices;
    
    namespace LearningAppLibrary.Log
    {
        public class Logger
        {
            public static log4net.ILog GetLogger([CallerFilePath]string filename = "")
            {
                return log4net.LogManager.GetLogger(filename);
            }
    
            public static readonly log4net.ILog log = GetLogger();
        }
    }

    1. 在windows窗体应用程序项目“ClearningApp.UI”中,在app.config上我添加了以下log4net代码
    2. <configSections>
         <section name="Database" type="System.Configuration.NameValueSectionHandler" />
         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
      </configSections>
        
        <Database>
          <add key="ClearningDB" value="Server=DESKTOP-AA\SQLDATA;Database=CLearningDB;Trusted_Connection=True;" />
        </Database>
      
        <log4net>
          <root>
            <level value="DEBUG"/>
            <appender-ref ref="ConsoleAppender"/>
            <appender-ref ref="LogFileAppender"/>
          </root>
          <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%date [%thread] %C{1}.%M: %m%n"/>
            </layout>
          </appender>
          <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="Clearning.exe.log"/>
            <param name="AppendToFile" value="true"/>
            <rollingStyle value="Size"/>
            <maxSizeRollBackups value="10"/>
            <maximumFileSize value="1000MB"/>
            <staticLogFileName value="true"/>
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%date [%thread] %C{1}.%M: %m%n"/>
            </layout>
          </appender>
        </log4net>
        
          <startup> 
              <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
          </startup>
      
      
      </configuration>

      1. 我在CLearningApp.UI
      2. 的AssemblyInfo.cs中添加了汇编代码

        [assembly: log4net.Config.XmlConfigurator(Watch = true)]

        1. 在program.cs文件中,我有以下代码
        2. namespace CLearning
          {
              static class Program
              {
                  
                  /// <summary>
                  /// The main entry point for the application.
                  /// </summary>
                  [STAThread]
                  static void Main()
                  {
           
                      Application.EnableVisualStyles();
                      Application.SetCompatibleTextRenderingDefault(false);
                      bool isServiceRunning = ConnectionStatusCheckerService.CheckSQLServiceStatus();
                      if(!isServiceRunning)
                      {
                          Logger.log.Error("SQL is not running");
                      }
                      else
                      {
                      Application.Run(new MainForm());
                      Logger.log.Info("SQL is running, application started");
                      }
                  }
              }
          }

          我已将项目参考ClearningLibrary添加到ClearningApp.UI,但未创建日志文件。我没有在调试上得到任何错误,应用程序启动但没有日志文件和日志。

          请指导我的错误。

          此致 ARP

0 个答案:

没有答案