Calling all developers! We invite you to provide your input on Feature Experimentation by completing this brief survey.

 

HXH
HXH
May 11, 2010
  4539
(0 votes)

Adding an Additional Layer of Logging to EPiServer Actions

Part of my standard Workflow Implementation is an additional layer of logging that sits in a table outside of the standard EPiServer installation. I’ve found that keeping a record of a few basic EPiServer actions can really help to paint an accurate picture of which editors are doing what.

To log the actions as they are executed, I first created a custom property with the [PagePlugIn] Attribute. I then created a method called Initialize, which adds additional processing capabilities to events exposed through DataFactory.Instance.

The result is something like the following:

    [PagePlugIn]
    public class CustomPageActionControl
    {
        public static void Initialize(int bitflags)
        {
            DataFactory.Instance.SavedPage += LogSaved;
            DataFactory.Instance.PublishedPage += LogPublished;
            DataFactory.Instance.MovingPage += CheckIfDeleting;
        }

private static void LogSaved(object sender, PageEventArgs e)
        {
            LoggingTools.LogVersionStatus(e.Page, "Saved", "Details: Version saved.", EPiServer.Security.PrincipalInfo.Current);
        }

        private static void LogPublished(object sender, PageEventArgs e)
        {
            LoggingTools.LogVersionStatus(e.Page, "Published", "Details: Version published", EPiServer.Security.PrincipalInfo.Current);
        }

        private static void LogReadyToPublish(object sender, PageEventArgs e)
        {
            LoggingTools.LogVersionStatus(e.Page, "Publish Requested", "Details: Version marked as Ready to Publish. ", EPiServer.Security.PrincipalInfo.Current);
        }

}

This could be enhanced to log additional system actions..or be made more flexible so I’m only calling one Log procedure and then have some logic within to determine what the appropriate message should be… but you get the idea.

May 11, 2010

Comments

Please login to comment.
Latest blogs
Optimizely CMS easy RSS feed integration library

As I've mentioned in my  previous blog post , while I was developing the Optimizely version of my blog, I tried to look for a library that could...

David Drouin-Prince | Jan 25, 2025 | Syndicated blog

Decimal numbers in Optimizely Graph

Storing prices as decimal numbers on a commerce website and planning to expose them through Optimizely Graph? It might not be as straightforward as...

Damian Smutek | Jan 23, 2025 | Syndicated blog

Find and delete non used media and blocks

On my new quest to play around with Blazor and MudBlazor I'm going back memory lane and porting some previously plugins. So this time up is my plug...

Per Nergård (MVP) | Jan 21, 2025

Optimizely Content Graph on mobile application

CG everywhere! I pull schema from our default index https://cg.optimizely.com/app/graphiql?auth=eBrGunULiC5TziTCtiOLEmov2LijBf30obh0KmhcBlyTktGZ in...

Cuong Nguyen Dinh | Jan 20, 2025