Taking a step back, I'd also like you to check out:
https://github.com/fluffynuts/dotnet-utils
In particular, there are two utils in there which may help with determining
what's going on, especially if the problem is something early like failure to
resolve an assembly
In the bin folder, there are:
- toggle-fusion.cmd
- asmdeps.exe
If you're unsure about the latter, you're free to build your own from the
source in that repo -- the binary is supplied for convenience only
Here's what they do:
toggle-fusion.cmd will toggle fusion logging on the host machine. Be aware that
fusion logging will negatively impact performance _a lot_ but you'll end up
with logs in C:\fusion-logs telling you about errors resolving assemblies
asmdeps.exe will give you information about assembly dependencies. By default,
when it runs, it shows you a colored tree-view of assembly dependencies for the
assemblies provided on the CLI. You can turn off color and add `-p` to get
paths for the assemblies that are resolved (and would be loaded at runtime).
Both should help to track down a missing assembly -- whether that's missing
because there is no {X}.dll or missing because assemblies further up the chain
are expecting a different version or an assembly with a different public key.
-d
On 2020/09/08 18:52:09, Davyd McColl <[email protected]> wrote:
Have you tried an assembly rebind to force resolution to 2.0.9?
-d
On September 8, 2020 18:00:45 "Joseph A. MITOLA" <[email protected]> wrote:
Hi Davyd,
The weird thing is everything had been working fine with same configuration,
framework version 4.6, etc. and all I did was update the nuget package for
log4net from 2.0.8 to 2.0.9. After that IIS w3wp process along with perfmon.dll
process on the deployment server crashed when the application was launched. No
error logs were reported even when I set the internal debug to true, nothing.
But then, if I revert the nuget package back to 2.0.8, everything is normal
again including the logs with the internal debugging turned on. So, it makes me
think that maybe the 2.0.9 version is missing a dependency library or something
but I couldn't find anything online to that effect.
Here is my config, I'm using RollingFileAppender, AdoNetAppender, and
SmtpAppender
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString"
value="C:/logs/contentapps-proxy_%date{yyyyMMdd}.log" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<appendToFile value="true" />
<maxSizeRollBackups value="14" />
<maximumFileSize value="1024KB" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %date{yyyy-MM-dd hh:mm:ss tt}
[%thread] %m%n" />
</layout>
<preserveLogFileNameExtension value="true" />
</appender>
<appender name="CustomAdoNetAppender"
type="ContentAppsProxy.Filters.CustomAdoNetAppender">
<bufferSize value="1" />
<connectionType
value="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"
/>
<commandText value="INSERT INTO Log4Net_Error
([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date,
@thread, @log_level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
<appender name="CustomSmtpAppender"
type="ContentAppsProxy.Filters.CustomSmtpAppender">
<bufferSize value="512" />
<lossy value="false" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="Error" />
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
<priority value="High" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="CustomAdoNetAppender" />
<appender-ref ref="CustomSmtpAppender" />
</root>
</log4net>
Joseph A. Mitola, Information Systems Analyst
University of California, Berkeley
IST - Enterprise Applications
2195 Hearst Avenue, 250-29
Berkeley, CA 94720-4876
510-508-4443
[email protected] [mailto:[email protected]]
From: Davyd McColl [mailto:[email protected]]
Sent: Tuesday, September 8, 2020 12:08 AM
To: [email protected] [mailto:[email protected]]
Cc: [email protected] [mailto:[email protected]]
Subject: RE: issues with log4net 2.0.9 under IIS for projects using .net
framework 4.5+
Hi Joseph
I've performed a (rather belated) upgrade to log4net 2.0.9 on a work project
targeting net462 and, apart from having to perform some assembly rebinds to
handle dependencies which expect log4net 2.0.8, it's working fine with an
ado.net appender and a rolling log file appender, so I'd really like to know
more about your environment & configuration.
-d