2016-11-20 85 views
0

我有一个在AWS Elastic Beanstalk上运行的ASP.NET应用程序。该网站运行正常,但我无法配置AWS尾日志以获取log4net日志文件。AWS Elastic Beanstalk实例日志与ASP.NET

我正在使用log4net将日志输出到文件如下。

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\testlog.log" /> 
    <appendToFile value="true" /> 
    <maximumFileSize value="5MB" /> 
    <maxSizeRollBackups value="2" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date %level %thread %logger - %message%newline" /> 
    </layout> 
</appender> 

我在我的项目中创建.ebextensions\testlog.config(如描述here),并将它复制到输出(我已经验证了AWS会在AWS控制台的事件日志文件)。

files: 
    "c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/testlog.conf" : 
    content: | 
     C:\testlog.log 

当我试图让日志(日志 - >请求日志 - >最后100线 - >下载),我看到这个错误:

Faulting application path: c:\Program Files\Amazon\ElasticBeanstalk\Tools\TailLogs.exe 
Faulting module path: C:\Windows\SYSTEM32\KERNELBASE.dll 
Report Id: df345c3f-af75-11e6-8155-06f0078a1fb7 
Faulting package full name: 
Faulting package-relative application ID: 
2016-11-20T23:05:48.000Z Error 0:(0) .NET Runtime - Application: TailLogs.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.ArgumentException 
    at System.IO.Path.LegacyNormalizePath(System.String, Boolean, Int32, Boolean) 
    at System.IO.Path.NormalizePath(System.String, Boolean, Int32, Boolean) 
    at System.IO.Path.GetFullPathInternal(System.String) 
    at System.IO.DirectoryInfo.Init(System.String, Boolean) 
    at System.IO.DirectoryInfo..ctor(System.String) 
    at AWSBeanstalkCfnUtility.LogInfo.GetLogFiles(System.String) 
    at AWSBeanstalkCfnUtility.FileUtil.scanLogDirectories(System.IO.TextWriter, System.Collections.Generic.IEnumerable`1<AWSBeanstalkCfnUtility.LogInfo>) 
    at AWSBeanstalkCfnTailLogsApp.Program.Main(System.String[]) 

我试图登录到不同的文件路径(C:\inetpub\logs\,C:\Program Files\Amazon\ElasticBeanstalk\logs\),但我不断收到相同的错误。

我在做什么错的任何想法?

回答

0

我找到了问题的原因,我需要设置日志进入的文件夹的写入权限。

container_commands: 
    01-changeperm: 
    command: icacls.exe c:\\inetpub\\logs /grant "IIS AppPool\DefaultAppPool":(OI)(CI)M > c:\\cfn\\perms.log 2>&1 
    waitAfterCompletion: 0 

files: 
    "c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/applog.conf": 
    content: | 
     C:\inetpub\logs\app.log