我使用文件目标写入日志文件,如下所示:
fileName="/Temp/Logs/AppDir/App.log"
当应用程序在本地驱动器上时,它可以正常工作并写入此位置。如果我将应用程序移动到文件共享,那么我不会在此位置获取日志文件而且没有错误。
我假设它的权限。在这种情况下,你可以根本不写本地驱动器吗?我可以把它写在别处,或者NLog配置中有一些设置或我需要看的东西吗?
来自program.cs的代码部分:请注意,我没有看到catch中的消息框,并且应用程序正常运行:
static void Main()
{
try
{
Logger.Info("Application Start");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var settings = new Settings();
if (settings.AccessDenied)
Application.Run(new FormAccessDenied());
else
Application.Run(new FormMain(settings));
}
catch (CommunicationException ce)
{
Logger.Error($"{ce.Message}{Environment.NewLine}{ce.StackTrace}");
MessageBox.Show($"{ce.Message}{Environment.NewLine}The application can not proceed");
}
catch (Exception up)
{
Logger.Error($"{up.Message}{Environment.NewLine}{up.StackTrace}");
MessageBox.Show($"An error has occurred in the application. Please consult the log file for more information");
}
}
谢谢!
答案 0 :(得分:0)
这可能是一个权限错误。您可以通过以下方式检查:
或:启用内部日志记录,在您的配置中,在这种情况下警告就足够了
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css">
<div class="form-group" id="form-group-1">
<label for="select1">Select list:</label>
<select class="form-control" id="select1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</div>
<button id="setval">Set value</button>
或启用异常抛出。
<nlog internalLogFile="c:\log.txt" internalLogLevel="Warn">
建议在生产中转换<nlog throwExceptions="true" />
(默认值)