How to enable custom logger in Sitecore

 Below are the steps to enable a custom logger:

1. Install Sitecore.Logging assembly in Project form Nuget Package manager. Please select Dependency Behavior as Ignore Dependencies.



  1. Create CustomLogger.config file in AppSetting/Include/Project folder with below content.You can change log folder and log file name by changing value in config file .


 <?xml version="1.0" encoding="utf-8" ?>

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">

<sitecore>

<log4net>

<logger name="CustomLogger" additivity="false">

<level value="DEBUG"/>

<appender-ref ref="CustomLogFile"/>

</logger>

<appender name="CustomLogFile">

<patch:attribute name="type">log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging</patch:attribute>

<file>

<patch:attribute name="value">$(dataFolder)/logs/CustomLog/Custom.Log.{date}.txt</patch:attribute>

</file>

<encoding value="utf-8" />

<staticLogFileName value="false"/>

<datePattern value="_yyyyMMdd" />

<rollingStyle value="Date" />

<!--<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />-->

<appendToFile value="true" />

<preserveLogFileNameExtension value="true" />

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="%d (%-5p) %n%m%n%n" />

</layout>

</appender>

</log4net>

</sitecore>

</configuration>


  1. Create log helper class with below code:

LogHelper.cs

using log4net;

namespace Sitecore.Demo.Web.Helper

{

    public class LogHelper

    {

        public static readonly ILog Logger = LogManager.GetLogger("CustomLogger");

    }

}

  1. The custom logger is ready to use, below is a sample implementation:

AboutController.cs

using Sitecore.Demo.Web.Helper;

using Sitecore.Demo.Web.Models;

using Sitecore.Mvc.Presentation;

using System;

using System.Web.Mvc;


namespace Sitecore.Demo.Web.Controllers

{

    public class AboutController : Controller

    {

        public ActionResult Index()

        {

            //1. Pass the Item to the view

            var model = new AboutViewModel()

            {

                Item = RenderingContext.Current?.Rendering.Item

            };

           //Error Logger

            LogHelper.Logger.Error("Error Log: AboutController: Index method " + DateTime.Now.ToString());


           //Info Logger

            LogHelper.Logger.Info("Info Log: AboutController: Index method " + DateTime.Now.ToString());


            return View(model);

        }

       

    }

}

Below is log generated by above process:




The benefit of enabling a custom logger is that we can create separate log folders as per our requirements.

 


Comments

Popular posts from this blog

How to upload webp image in Sitecore CMS

Sitecore Docker Container Installation and running Sitecore Experience Platform - Single (XP0)