We're currently on Sitecore 9.1 and recently migrated onto Sitecore's dependency injection framework in order to get Sitecore Forms to work correctly. The transition seemed to go smoothly, however now Sitecore is no longer outputting logs to the App_Data/logs folder. The only thing that was changed was that instead of using SimpleInjector to register our dependencies we began registering them as follows within Sitecore's framework:
Configuration:
<services>
<configurator type="MyNamespace.Pipelines.RegisterDependencies, MyNamespace." />
</services>
Code:
namespace MyNamespace
{
public class RegisterDependencies : IServicesConfigurator
{
public void Configure(IServiceCollection serviceCollection)
{
serviceCollection.AddTransient(typeof(IAnalyticsService), typeof(AnalyticsService));
}
}
}
I can't seem to figure out why this change would break Sitecore's logging functionality. When debugging our code I can still see the ILogger declarations resolving correctly:
private ILog _logger;
protected ILog Logger
{
get
{
if (_logger == null)
_logger = Sitecore.Diagnostics.LoggerFactory.GetLogger(Foundation.Logging.Constants.Logger.Feature);
return _logger;
}
}
I've tried adding the following setting to our log4net appender declarations:
<immediateFlush value="true"/>
And I have also tried manually setting the buffer size of the appender in a given logger to 1 to try to force it to flush:
var logger = Logger.Logger as Logger;
if (logger != null)
{
foreach (IAppender appender in logger.Appenders)
{
var buffered = appender as BufferingAppenderSkeleton;
if (buffered != null)
{
buffered.BufferSize = 1;
}
}
}
Neither steps have caused any logs to be produced. Any thoughts on what might be going on here? Thanks for the help!