我创建了一个单独的项目,它将维护所有数据访问,模型和日志记录。我正在使用log4net作为日志工具。只有当Logger类文件在项目本身内时,它才能正常工作。
我有windows表单应用程序“ClearningApp.UI”,其中主要包含应用程序UI和类库项目“CLearningApp.Library”,其中包含DataAccess,Configuration,DatabaseSetup应用程序的其他实用程序。
我必须从应用程序从UI到库中的所有内容开始记录所有内容,因此我在CLeaningApp.Library中创建了一个名为Logging的文件夹,并创建了一个类Logger
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();
}
}
<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>
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
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