Logging in EPiServer TECHNICAL NOTE. Purpose. Product version: 4.60. Document version: 1.3. Document creation date: 29-05-2006

Similar documents
Logging in EPiServer. Purpose. Product version: Document version: 1.0. Document creation date:

FTP Service Reference

Portals and Hosted Files

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

FTP Service Reference

EPiServer Operator's Guide

Cache Configuration Reference

Security Provider Integration LDAP Server

BlackBerry Enterprise Server Resource Kit

MarkLogic Server. Connector for SharePoint Administrator s Guide. MarkLogic 8 February, 2015

MCTS Guide to Microsoft Windows Server 2008 Applications Infrastructure Configuration (Exam # )

Active Directory LDAP Quota and Admin account authentication and management

Error Codes for F-Secure Anti-Virus for Firewalls, Windows 6.20

Services Monitor Manager

How to test and debug an ASP.NET application

Installation and Configuration Guide

An Introduction To The Web File Manager

COMMANDS 1 Overview... 1 Default Commands... 2 Creating a Script from a Command Document Revision History... 10

Working With Virtual Hosts on Pramati Server

metaengine DataConnect For SharePoint 2007 Configuration Guide

Description of Microsoft Internet Information Services (IIS) 5.0 and

LifeSize Video Center Administrator Guide March 2011

LifeSize UVC Video Center Deployment Guide

Features of AnyShare

Microsoft Dynamics CRM Adapter for Microsoft Dynamics GP

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP system v10 with Microsoft Exchange Outlook Web Access 2007

Acronis Backup & Recovery: Events in Application Event Log of Windows

SharePoint Integration Framework Developers Cookbook

SAS 9.4 Logging. Configuration and Programming Reference Second Edition. SAS Documentation

Installation Documentation Smartsite ixperion 1.3

CommonSpot Content Server Version 6.2 Release Notes

Managing Software and Configurations

multiple placeholders bound to one definition, 158 page approval not match author/editor rights, 157 problems with, 156 troubleshooting,

Gigabyte Content Management System Console User s Guide. Version: 0.1

DotNet Web Developer Training Program

Click Studios. Passwordstate. Installation Instructions

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

MS Enterprise Library 5.0 (Logging Application Block)

Visual COBOL ASP.NET Shopping Cart Demonstration

WatchGuard SSL v3.2 Update 1 Release Notes. Introduction. Windows 8 and 64-bit Internet Explorer Support. Supported Devices SSL 100 and 560

LNS and OpenLNS Runtime Errors

TIBCO Spotfire Web Player 6.0. Installation and Configuration Manual

XenDesktop 5 (SP1) Broker Event Log Messages. This article contains information on XenDesktop 5 (SP1) Broker Event Log Messages.

Analytics Configuration Reference

Web Plus Security Features and Recommendations

PORTAL ADMINISTRATION

IIS, FTP Server and Windows

SimpleFTP. User s Guide. On-Core Software, LLC. 893 Sycamore Ave. Tinton Falls, NJ United States of America

Novi Survey Installation & Upgrade Guide

Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide

Click Studios. Passwordstate. Installation Instructions

EMC ApplicationXtender Server

ISA Server Plugins Setup Guide

EMC ApplicationXtender Server

Appendix. Web Command Error Codes. Web Command Error Codes

BlackBerry Enterprise Server Resource Kit

3M Command Center. Installation and Upgrade Guide

Expanded contents. Section 1. Chapter 2. The essence off ASP.NET web programming. An introduction to ASP.NET web programming

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.

Administrator's Guide

MailEnable Connector for Microsoft Outlook

Secure Messaging Server Console... 2

5. At the Windows Component panel, select the Internet Information Services (IIS) checkbox, and then hit Next.

Integrating VoltDB with Hadoop

System Administration Training Guide. S100 Installation and Site Management

*Described in the Release Notes. Generally this step will be performed by the admin end-users.

TIBCO Spotfire Automation Services 6.5. Installation and Deployment Manual

HP IMC Firewall Manager

ShoreTel Active Directory Import Application

EMC Documentum Connector for Microsoft SharePoint

SAS 9.3 Logging: Configuration and Programming Reference

User Manual. Onsight Management Suite Version 5.1. Another Innovation by Librestream

DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Oracle E-Business Suite 12

Configuring System Message Logging

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2

CLC Server Command Line Tools USER MANUAL

c360 Portal Installation Guide

Jobs Guide Identity Manager February 10, 2012

Release Notes RSA Authentication Agent for Web for IIS 7.0, 7.5, and 8.0 Web Server

SelectSurvey.NET Developers Manual

NAT TCP SIP ALG Support

Documentum Content Distribution Services TM Administration Guide

Quality Center LDAP Guide

WS_FTP Professional 12

KB Windows 2000 DNS Event Messages 1 Through 1614

Integrated Virtual Debugger for Visual Studio Developer s Guide VMware Workstation 8.0

HP A-IMC Firewall Manager

Terms and Definitions for CMS Administrators, Architects, and Developers

Jive Connects for Microsoft SharePoint: Troubleshooting Tips

UNICORE UFTPD server UNICORE UFTPD SERVER. UNICORE Team

4.0 SP1 ( ) November P Xerox FreeFlow Core Installation Guide: Windows Server 2008 R2

EXAM PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4. Buy Full Product.

HP Device Manager 4.6

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

FileMaker Server 14. Custom Web Publishing Guide

SAML v1.1 for.net Developer Guide

Using RADIUS Agent for Transparent User Identification

Vector HelpDesk - Administrator s Guide

ResPAK Internet Module

Transcription:

Logging in EPiServer Product version: 4.60 Document version: 1.3 Document creation date: 29-05-2006 Purpose This document describes how to configure logging in EPiServer, and provides information on how to interpret the logged information and best practices. The intended audiences are developers and system administrators. TECHNICAL NOTE

2 TTLogging in EPiServer Revision Information Document version Comments 1.0 4.60 release version. 1.1 Corrected spelling to FriendlyUrlModule in chapter 17.1. 1.2 Added message 10.7, Logger EPiServer.Admin. ContentMirroringEdit. 1.3 Added messages 10.4.5, 10.4.6, 17.1.3, 17.2, 17.3. Table of Contents INTRODUCTION 3 ENABLE LOGGING 3 DISABLE LOGGING 4 SITE INFORMATION LOGGING 4 STATISTICS LOGGING 4 ORGANIZING LOG FILE STORAGE 6 SITE INFORMATION LOGGING REFERENCE 7 1 TOP CLASS LEVEL 7 2 DATAACCESS 10 3 DATAABSTRACTION 12 4 PERSONALIZATION 13 5 FILESYSTEM 14 6 CORE 15 7 WEBCONTROLS 17 8 CLIENTTOOLS 17 9 SECURITY 17 10 MIRRORING/EXPORT/IMPORT 19 11 LOG SERVICE 20 12 XFORMS 22 13 MULTI LANGUAGE 22 14 WSRP 23 15 WEB PARTS 23 16 SYSTEM CONTROLS 23 17 UTIL 23 ADDITIONAL INFORMATION 24

Introduction 3 Introduction The logging system in EPiServer uses the log4net framework and we recommend that you read the introduction at the log4net web site, http://logging.apache.org/log4net, before reading this document. Logging Levels There are seven levels of logging that are assigned according to priority level, with OFF having the highest value and ALL the lowest value. OFF FATAL ERROR WARN INFO DEBUG ALL Enable Logging Logging is controlled from a configuration file named EPiServerlog.config and should be placed in the same directory as the application's web.config file. Why is the logging configuration not placed in web.config? The reason for this decision is that if you want to enable logging when the application has entered a bad state, you have to change and save the configuration file. If the information is in web.config, the Web application would be restarted when you save web.config, possibly clearing the cause for the problem that you wanted to log. Keeping the log configuration separate from web.config eliminates this problem. A typical log configuration file might look like this: <log4net> <appender name="errorappender" type="log4net.appender.fileappender" > <file value="c:\\episerverlog\\1\\monitor\\errorlog-file.txt" /> <appendtofile value="true" /> <layout type="log4net.layout.patternlayout"> <conversionpattern value="%d [%t] %l - %m%n" /> </layout> </appender> <appender name="statisticsappender" type="log4net.appender.rollingfileappender"> <file value="c:\\episerverlog\\1\\statistics\\episerverstatistics.log" /> <appendtofile value="true" /> <rollingstyle value="date" /> <layout type="log4net.layout.patternlayout"> <param name="conversionpattern" value="%d %m%n" /> </layout> </appender> <logger name="episerver.diagnostics.statisticslog"> <level value="info" />

4 TTLogging in EPiServer <appender-ref ref="statisticsappender" /> </logger> <root> <level value="warn" /> <appender-ref ref="errorappender" /> </root> </log4net> If you want to enable full logging, simply change the level value in the root tag to ALL. Note that this will give you a lot of data. Disable Logging There are two ways to disable active logging: 1. Set the level to OFF in EPiServerLog.config. 2. Remove the file and restart the Web site. This can be done by either resaving the system settings/web.config, killing the process or doing an iis-reset. It is not enough to just remove the file; the Web site must be restarted to disable logging. Site Information Logging The site information is primarily concerned with logging various problems and unusual events. Basically you should always monitor events with log level WARN and above. Events with lower levels are primarily intended to get information to track down specific errors and/or bugs. A developer might want to enable full logging to a RollingFileAppender (see the log4net documentation) in his development environment to be able to check what has happened in EPiServer in case a specific problem occurs but during regular production use, you would probably want to just monitor WARN events and higher. Exceptions will be logged with the complete stack trace to enable you to track down exception errors. Be aware that exceptions are expensive in terms of performance. You should avoid writing code that generates exceptions as part of the normal program flow. Statistics Logging EPiServer has one specific logger that generates output that can be used for statistics analysis similar to traditional Web log analysis. This is the EPiServer.Diagnostics.StatisticsLog. The reason for its existence is that a dynamic Web site may exhibit behavior different from a static Web. For example, when a person looks at the start page of an intranet site, he may be presented with a headline news item and two smaller product-related news items. The Web site owner may want to have information about the specific news items being read so this single start page hit should actually be counted as three separate content hits. The statistics logging function in EPiServer is designed to support such behavior. It should usually not be considered a replacement for the traditional IIS log file since the EPiServer log will not register information about GIF images or other static file accesses.

Statistics Logging 5 The log file format generated is non-standard and created to be quickly parsed without resorting to complicated algorithms. The format is one row per hit: YYYY-MM-DD HH:mm:SS,sss url hittype session sid pagelink username pagename YYYY MM DD HH mm SS sss url hittype session sid pagelink username pagename Year, month and day. The information is zero-padded. Month, zero-padded. 01 = January, 02=February etc. Day, zero-padded. Hours in 24 hour format, zero-padded. Minutes, zero-padded. Seconds, zero-padded. Milliseconds, zero-padded. The full URL of the request as received by EPiServer, including protocol and host information. Indicates the type of page view. Can be one of the following: Page Regular page view Content The indicated pagelink was displayed as part of another page. External Data external to EPiServer was displayed. File A static file was send to the client. A string identifying a unique session. If a session cannot be determined this string will be empty. The current implementation simply uses the session ID and thus relies on the session mechanism to be enabled. This is an implementation detail and may change in the future. An integer representing the user viewing the page. This maps directly to the SID (Security Identifier) used internally in EPiServer (not to be confused with SIDs in Windows). For non-authenticated users this SID will be 3 (= Anonymous). An integer representing the page ID. This field may be empty if hittype is External or File. The login name of the user viewing the page. For non-authenticated users this name will be Anonymous. The name of the current page as entered in edit mode. Some lines from a sample log file are displayed below: 2004-04-05 11:53:12,815 http://testsite.episerver.com/episerversample/templates/page.aspx?id=22 Page g2zyua550v4ufq55n2obs1fk 23 22 EP\magnuss Templates 2004-04-05 11:53:16,987 http://testsite.episerver.com/episerversample/templates/page.aspx?id=84 Page g2zyua550v4ufq55n2obs1fk 23 84 EP\magnuss Developer hints 2004-04-05 11:53:24,815 http://testsite.episerver.com/episerversample/templates/page.aspx?id=57 Page g2zyua550v4ufq55n2obs1fk 23 57 EP\magnuss Inspiration 2004-04-05 11:53:30,705 http://testsite.episerver.com/episerversample/templates/news.aspx?id=76 Page g2zyua550v4ufq55n2obs1fk 23 76 EP\magnuss News 2004-04-05 11:53:32,815 http://testsite.episerver.com/episerversample/templates/page.aspx

6 TTLogging in EPiServer?id=83 Page g2zyua550v4ufq55n2obs1fk 23 83 EP\magnuss EPiServer now with Oracle support 2004-04-05 11:57:14,283 http://testsite.episerver.com/episerversample/default.aspx?id=3 P age o42v2355u5mvqr55hmkz35yo 23 3 EP\magnuss Welcome to EPiServer 4 2004-04-05 11:58:14,207 http://testsite.episerver.com/episerversample/templates/page.aspx?id=22 Page o42v2355u5mvqr55hmkz35yo 23 22 EP\magnuss Templates 2004-04-05 11:58:45,302 http://testsite.episerver.com/episerversample/default.aspx?id=3 P age o42v2355u5mvqr55hmkz35yo 23 3 EP\magnuss Welcome to EPiServer 4 If you want EPiServer to produce a log file formatted like a standard IIS / W3C Web log file, you can use the Statistics logging event that will be fired for every statistics event and contains all the information described above. In your event handler, you can then choose to output this information in a suitable format, maybe even use the logging functions since they provide a simple and high-performance way to log data. Some sample code to illustrate how to attach your event handler to such a logging function for this example it is placed in global.asax.cs: public class Global : EPiServer.Global { public Global() { InitializeComponent(); EPiServer.Diagnostics.StatisticsLog.Logging +=new EPiServer.Diagnostics.StatisticsEventHandler(StatisticsLog_Logging); } private void StatisticsLog_Logging(object sender, EPiServer.Diagnostics.StatisticsEventArgs e) { // Output information from e to the desired target }......... Another use for the Logging event would be to implement some type of information aggregation on-the-fly. The simplest possible example would be a page hit counter. Organizing Log File Storage For a production site, it is essential to have a policy regarding log files to avoid problems such as exposing log files on your Web site, filling up a system partition with log data etc. The EPiServer logging functions, with the exception of the EPiServer.Diagnostics.StatisticsLog, are intended to be used to monitor the health of your Web application and should under normal operation not cause excessive logging, as long as you do not enable logging of events below the WARN level. The following are our recommendations on how to store log files. Note that if you are using remoting, UDP appenders or any type of appender that does not write log files to the local drives, the actual storage of log data will probably not happen on the Web server, although other restrictions may apply. Note You must have at least write permission for the directory that you wish to log to for the account that you are using for your Web site.

Site Information Logging Reference 7 Where to Store Log Files Log files should be stored outside the folder structure exposed by the Web server. That is to say that if your EPiServer application is installed in the C:\Inetpub\EPiServerSite1 folder, you should not store your log files in the C:\Inetpub\EPiServerSite1\logs folder. This could (depending on Web server configuration and file access rights) expose your logs to any visitor to your Web site. Log files should not be stored on the system partition. If your Web server has the operating system installed on the C: drive, you should store the log files on another drive. Even though EPiServer's log functions should not cause large log files during normal operation, the log files may grow very large, if you enable full debugging. If the logging takes all free space on your system partition, you will experience all sorts of problems, most likely making your Web site unavailable until the situation has been resolved. We suggest that you store log files in the following structure (the illustration assumes that we have designated E: as the log storage partition). E:\EPiServerLog\ The root folder for EPiServer logs 1 Give each EPiServer application its unique folder Monitor Statistics A Monitor folder used to log warnings and errors, i e health monitoring logs. A Statistics folder that should be used if you choose to enable EPiServer's statistics logging. Site Information Logging Reference Every logging message has a unique identity in the form x.y.z to enable you to quickly determine the source of the message. This identity is hierarchical and based on the class structure in EPiServer. The list below lists all possible log information that EPiServer can generate as well as explanations and more information. 1 Top Class Level 1.1 Logger EPiServer.PageBase 1.1.1 WARN Access denied The access denied method was called because the current user did not have access to the requested page. 1.1.2 WARN Loading page with wrong page template The page that was referenced by the ID parameter should not be displayed with the page template file named in the URL. 1.1.3 INFO Page initialized The page has been loaded and access has been verified. This is logged at the end of the PageBase.OnInit method. 1.1.4 DEBUG PageBase makes a permanent redirect to friendly URL from='<url> to= <url> A access is made directly to the page and a permanent redirect is done to the friendly URL for the page.

8 TTLogging in EPiServer 1.2 Logger EPiServer.Global 1.2.1 DEBUG Enter Global constructor Entering the EPiServer.Global constructor. Logged before any actions are performed. Note that this may be entered into the log multiple times, but the Leave Global constructor message (1.2.2) should only be logged once per application startup. This is because the constructor is protected from multiple initializations. 1.2.2 DEBUG Leave Global constructor Leaving the Global constructor. See comments on 1.2.1 1.2.3 INFO Authenticate request The Application_AuthenticateRequest event has been handled by EPiServer. If authentication is successful the Context.User should be set to the authenticated user. 1.2.4 ERROR - exception FormsAuthentication failed 1.2.5 ERROR exception Unhandled exception in ASP.NET 1.2.6 ERROR HttpApplication created without HttpContext 1.2.7 INFO Precompilation reqluest for file X The FormsAuthentication_OnAuthenticate event failed with an exception. The exception is logged and program execution continues with User set to AnonymousUser. The HttpApplication.Error event has been raised and caught by EPiServer. The exception is logged and the error will be sent to the response stream if the current user has the required privileges to see runtime errors. This message indicates that EPiServer may not have been able to configure all its internal settings due to missing information about the web application at the time the GlobalBase class was created. This should never happen under IIS as the first HttpApplication s will be created by ASP.NET with a HttpContext, it can happen in design mode in Visual Studio.NET. Added in version 4.40 A precompilation request, as indicated by the query string parameter EP_PreCompile, was received for the url X. This means that the actual processing of the page will terminate immediately after precompilation, so no further execution takes place. 1.3 Logger EPiServer.LazyIndexer 1.3.1 ERROR exception IndexPage failed for page X Some kind of error occurred when the LazyIndexer tried to index a page. Will append the ID of the page that failed. 1.4 Logger EPiServer.ApplicationConfiguration 1.4.1 DEBUG Persist entered Will try to save EPiServer settings to web.config. 1.4.2 DEBUG Persist without a WindowsIdentity 1.4.3 DEBUG Persist with a WindowsIdentity 1.4.4 DEBUG Persist with a WindowsIdentity and impersonation 1.4.5 DEBUG Persist with a WindowsIdentity and impersonation Trying to save the config file when logged on with a non-windows account. This may cause problems since the account might not have correct privileges to write the file. Trying to save the config file when loggen on with a Windows account. However no impersonation has been made. Trying to save the config file when loggen on with a Windows account and impersonating that user. Trying to save the config file when loggen on with a Windows account and impersonating that user. 1.4.6 DEBUG Persist values <values' updatedbysid='<sid>

Site Information Logging Reference 9 1.5 Logger EPiServer.GatlingCompatibility 1.5.1 DEBUG Gatling compatibility enabled / disabled 1.5.2 ERROR exception Failed to write registry data 1.5.3 ERROR exception Failed to read registry data 1.5.4 INFO EPiServer 3 cache management enabled Reports the state of the Gatling (i e EPiServer 3) compatibility flag. An exception was thrown in response to saving configuration data to the EPiServer 3 registry location. Usually caused by privilege problems. An exception was thrown in response to loading configuration data from the EPiServer 3 registry location. Usually caused by privilege problems. The GatlingCompatibility.InitializeCache method was called when EPiServer 3 compatibility was enabled. This has resulted in event handlers being attached to the global DataFactory instance to clear the EPiServer 3 cache as necessary. 1.6 Logger EPiServer.DataFactory 1.6.1 ERROR exception Constructor without HttpContext The DataFactory constructor was called without having a valid HttpContext. This may cause problems with the upload directory settings. 1.6.2 WARN exception Access denined in GetDefaultPageData 1.6.3 ERROR exception GetChildren failed Some kind of exception occurred when loading children. 1.6.4 ERROR exception GetPage failed 1.6.5 DEBUG FindPagesWithCriteria enter 1.6.6 DEBUG FindPagesWithCriteria leave 1.6.7 INFO Version: {VersionID} Page: {PageID} was deleted by {User} 1.6.8 INFO Page: {PageID}, with {n} children was deleted by {User} 1.6.9 INFO The recycle bin was purged by {User} 1.6.10 DEBUG Page: {PageID_of_1st_page} was deleted by {User}.. DEBUG Page: {PageID_of_{n}th_page} was deleted by {User} 1.6.11 INFO Page: {PageID} was moved to the recycle bin by {User} The internal version number (i.e. not the one shown in the browser), page ID and the user who deleted (from the recycle bin) it, will be logged. The page ID, number of children, and the user who deleted (from the recycle bin) it, will be logged. Each time a user purges the recycle bin it is logged. The page ID, and the user who deleted it (from the recycle bin), will be logged. The page ID, and the user who moved the page to the recycle bin, will be logged. (If there are children, they will not be logged, since they are not deleted, only moved) 1.6.12 WARN exception Access denied in CreateLanguageBranch 1.6.13 INFO Page: {PageID} Language: {LanguageID} was deleted by user {User}

10 TTLogging in EPiServer 1.7 Logger EPiServer.CacheManager 1.7.1 ERROR exception Failed to remove item from remote cache 1.7.2 DEBUG Begin remove item from remote cache 1.7.3 DEBUG End remove item from remote cache 1.7.4 DEBUG Remove pending remote cache request without matching info. Key:X, Site:Y This message is logged when the asynchronous web service call is finished if the corresponding information used for serializing calls cannot be found. This indicates a threading problem. 2 DataAccess 2.1 Logger EPiServer.DataAccess.BackupDB 2.1.1 ERROR exception BackupDataBase failed An exception occurred in the database backup process. 2.2 Logger EPiServer.DataAccess.CategoryDB 2.2.1 ERROR exception Category load failed 2.2.2 ERROR exception Category save failed 2.2.3 ERROR exception Category load tree failed 2.2.4 ERROR exception Category dataset save failed 2.2.5 ERROR exception Category list failed An exception occurred in the category load process. An exception occurred in the category save process. An exception occurred in the category load tree process. An exception occurred in the category dataset save process. An exception occurred in the category list process. 2.3 Logger EPiServer.DataAccess.DatabaseInformationDB 2.3.1 ERROR exception Load information failed 2.4 Logger EPiServer.DataAccess.DynamicPropertiesDB 2.4.1 ERROR exception Dynamic properties load tree failed 2.4.2 ERROR exception Dynamic properties load failed 2.4.3 ERROR exception Dynamic properties save failed 2.4.4 INFO Dynamic property pageid='<pageid>' property='<propertyvalue>' sid='<sid>' 2.5 Logger EPiServer.DataAccess.FormDefinitionDB 2.5.1 ERROR exception Load form definition failed 2.5.2 ERROR exception Save form definition failed 2.5.3 ERROR exception Listing all forms failed

Site Information Logging Reference 11 2.6 Logger EPiServer.DataAccess.FormPostingDB 2.6.1 ERROR exception Save form posting failed 2.6.2 ERROR exception Posting check failed 2.7 Logger EPiServer.DataAccess.FormStatisticsDB 2.7.1 ERROR exception Get form statistics failed 2.7.2 ERROR exception Get form statistics with time limit failed 2.7.3 ERROR exception Delete form statistics failed 2.8 Logger EPiServer.DataAccess.FrameDB 2.8.1 ERROR exception List frames failed 2.8.2 ERROR exception Save frames failed 2.9 Logger EPiServer.DataAccess.GatlingDB 2.9.1 ERROR exception Gatling change log failed 2.10 Logger EPiServer.DataAccess.LanguageDB 2.10.1 ERROR exception Language list failed 2.10.2 ERROR exception Language save failed 2.11 Logger EPiServer.DataAccess.PageDefinitionDB 2.11.1 ERROR exception Page ACL list failed 2.11.2 ERROR exception Page ACL save failed 2.11.3 ERROR exception Page ACL save recursive failed 2.11.4 INFO Page definition save name='<name>' id='<id>' sid='<sid> 2.11.5 INFO Page definition delete id='<id>' sid='<sid> 2.12 Logger EPiServer.DataAccess.PageDB 2.12.1 ERROR exception 2.12.1 Property type / assembly is invalid 2.13 Logger EPiServer.DataAccess.PermissionDBPageListDB 2.13.1 INFO - Save Permissions For Sid SID='<sid>' permissions='<new permissions> ' updatedbysid='<sid> 2.13.2 INFO - Save Sids For Permisson permission='<permissions> Sids='<new sids> ' updatedbysid='<sid> 2.13.3 DEBUG Loading children from database for parent {PageLink} 2.13.4 DEBUG Loading page from database for page {PageLink} 2.14 Logger EPiServer.DataAccess.SidDBPageLanguageSettingDB

12 TTLogging in EPiServer 2.14.1 INFO - Sid delete Sid SID='<sid>' updatedbysid='<sid> 2.14.2 ERROR exception List language settings tree failed 2.14.3 ERROR exception Load page language settings failed 2.14.4 ERROR exception Save page language settings failed 2.14.5 ERROR exception Delete page language settings failed 2.15 Logger EPiServer.DataAccess.PersonalizeDB 2.15.1 ERROR - Can't save personalized data for SID= <sid>, because, <exception> 2.15.2 ERROR Cant' load personalized data for SID= <sid>, because <exception> 3 DataAbstraction 3.1 Logger EPiServer.DataAbstraction.ScheduledJob 3.1.1 INFO Successfully executed scheduled job {JOBID} 3.1.2 ERROR exception Failed to execute job {JOBID} 3.1.3 INFO Scheduled job has already been executed {JOBID} The date used to schedule a job has been changed since it was checked out, this may be because another server has executed the job or a user has manually changed or executed the job. 3.2 Logger EPiServer.DataAccess.PageType 3.2.1 INFO Page type save id=<'id>' sid='<sid>' 3.2.2 INFO Page type copy id='<id>' newid='<newid>' sid='<sid> 3.2.3 INFO Page type delete id='<id>' sid='<sid>' 3.3 Logger EPiServer.DataAccess.GroupSid 3.3.1 INFO Save group SID='<sid>' updatedbysid='<sid>' 3.3.2 INFO Delete group membership grouptodeletesid='<sid>' parentsid='<sid>' updatedbysid'=<sid>' 3.3.3 INFO Add group membership grouptoaddsid='<sid>' parentsid='<sid>' updatedbysid'=<sid>' 3.4 Logger EPiServer.DataAccess.UserSid 3.4.1 INFO Save user SID='<sid>' updatedbysid='<sid>'

Site Information Logging Reference 13 4 Personalization 4.1 Logger EPiServer.Personalization.SubscriptionJob 4.1.1 INFO No subscription templates were found 4.1.2 DEBUG {Count} page updates where queued for template {PageID} 4.1.3 DEBUG Finished processing subscription mail for {DisplayName} 4.1.4 ERROR exception Failed to send subscription to {DisplayName} 4.1.5 DEBUG Start processing subscription mail for {DisplayName} 4.1.6 DEBUG Uses subscription handler: {handler name} 4.1.7 DEBUG User language is set to: {language identity for the user} 4.1.8 DEBUG No user language specified return some languages 4.1.9 DEBUG Page is published on user language pagelink={page link} language={user language} 4.1.10 DEBUG Using replacement language branch= {Replacement language branch} for pagelink={page link} user language={user language} 4.1.11 DEBUG Using fallback language={fallback language} pagelink={page link} user language={user language} 4.1.12 No updated page for language branch is found pagelink={page link} language={user language} 4.2 Logger EPiServer.Personalization.MultiLanguageSubscriptionMail 4.2.1 DEBUG Indicates that a page has not been selected in multi language mode. 4.2.2 DEBUG Indicates that a page is not a multi language page. 4.2.3 DEBUG Indicates that a page is a multi language page. 4.2.3.1 - DEBUG Information about the root of the subscription and accepted languages for it. 4.2.3.2 - DEBUG Indicates that a version of a page is distributed on a certain updated language on the page. 4.2.3.3 - DEBUG Indicates that a page is updated on the default language and will be distributed to all languages. 4.2.3.4 - DEBUG Indicates that a page is set to use language fallback and a notification is done by sending mail on all languages. 4.3 Logger EPiServer.Personalization.SubscriptionMail 4.3.1 WARN Invalid email address found (skip mail): {email address} 4.3.2 INFO Subscription mail sent to {email address} 4.3.3 DEBUG Stylesheet used to format subscription mail: {CSS path} ({number of bytes}) 4.3.4 WARN Stylesheet not found: {CSS path} 4.3.5 DEBUG Adding page to subscription pagelink={page link}

14 TTLogging in EPiServer 5 FileSystem 5.1 Logger EPiServer.FileSystem.UnifiedFileSystem 5.1.1 FATAL exception Filesystem failed to initialize 5.2 Logger EPiServer.FileSystem.UnifiedDirectory 5.2.1 WARN Unauthorized operation path= <path> SID= <sid> A method without the required permissions has been called, for example trying to delete a directory without the Delete permissions. 5.2.2 INFO Created directory 5.2.3 ERROR exception Failed to create directory 5.2.4 INFO Created file file= <file> SID= <sid> 5.2.5 ERROR exception Failed to create file 5.2.6 INFO Renamed directory from= <path> to= <path> SID= <sid> 5.2.7 ERROR exception Failed to rename directory 5.2.8 INFO Moved directory 5.2.9 ERROR exception Failed to move directory 5.2.10 INFO Copied directory 5.2.11 ERROR exception Failed to copy directory 5.2.12 INFO Deleted directory 5.2.13 ERROR exception Failed to delete directory 5.3 Logger EPiServer.FileSystem.UnifiedFile 5.3.1 WARN Unauthorized operation A method without the required permissions has been called, for example trying to delete a file without the Delete permissions. 5.3.2 INFO Open write stream 5.3.3 ERROR exception Failed to open write stream 5.3.4 INFO Deleted file path= <path> SID= <sid> 5.3.5 ERROR exception Failed to delete file 5.3.6 INFO Renamed file from= <path> to= <path> SID= <sid> 5.3.7 ERROR exception Failed to rename file 5.3.8 INFO Moved file from= <path> to= <path> SID= <sid> 5.3.9 ERROR exception Failed to move file 5.4 Logger EPiServer.FileSystem.WebDownloadManager Added in version 4.40 5.4.1 INFO TransmitFile [filename] The TransmitFile method was called with the logged filename as parameter. 5.4.2 DEBUG TransmitFile handled by [virtual name] The Handler associated with virtual name is used to handle the file.

Site Information Logging Reference 15 5.4.3 INFO TransmitFile file will be sent [path] 5.4.4 DEBUG TransmitFile Content type is [ContentType] 5.4.5 DEBUG TransmitFile with Reponse.TransmitFile 5.4.6 DEBUG TransmitFile with Response.BinaryWrite 5.4.7 DEBUG FindMimeFromData failed with error x The file will be transmitted to the client, if this point is not reached, then the file was most likely found in a client-side cache. Note that path is the Handler representation of the file and the prefix will most likely differ form the filename logged in 5.4.1 The ContentType that is set as the Content-Type header in the response sent to the client. The high-perfomance method is used to send the file to the client. If this method is used, the handlers OpenRead method is never called since the file is accessed directly from the physical file system. The generic transfer method is used to send the file. Should be followed by a call to the handlers OpenRead method. When attempting to look up the mime type to use for the specified file (see 5.4.4) the called failed. If x is non-zero then it correspons to a regular Win32 error code, if x is zero, the the call succeeded but returned null or a zero-length string as mime type. 6 Core 6.1 Logger EPiServer.Core.Html.IndexServerSearch Added in 4.40. 6.1.1 ERROR exception IndexServer error on command x 6.1.2 INFO IndexServer command executed: x Index server reported an error when the logged search command was executed. The Index server command x was successfully executed. 6.2 Logger EPiServer.Core.Html.HtmlWash Added in 4.40. 6.2.1 DEBUG Mapping [count] nodes from [element] to [element] 6.2.2 DEBUG Removing [count] [element] nodes but keeping content 6.2.3 DEBUG Removing unwanted attributes from [count] [element] nodes ([query]) 6.2.4 DEBUG Remapping or removing class on [count] nodes 6.2.5 DEBUG Removing[count] [element] nodes 6.2.6 DEBUG Removing[count] comment nodes 6.2.7 DEBUG Removing style attribute on [elements] nodes 6.2.8 DEBUG Rebuilding style attribute on [elements] nodes 6.2.9 DEBUG Removing unknown namespace prefixes on [elements] nodes 6.2.10 INFO Starting HTML washing 6.2.11 INFO Done with HTML washing

16 TTLogging in EPiServer 6.3 Logger EPiServer.Core.LanguageManager 6.3.1 ERROR - exception Cannot save language cache file X. This will impact startup performance. From EPiServer 4.60 the LanguageManager will attempt to cache a merged version of all language.xml-files to improve startup times. This merged file will be written to the util/temp/ directory. If this directory does not exist or the ASPNET account does not have access to this directory, then this message will appear. 6.4 Logger EPiServer.Core.LanguageContext 6.4.1 DEBUG Initializing preferred language to [LanguageID] from source [Source] 6.4.2 DEBUG Changing preferred language to [LanguageID] from source [Source] 6.4.3 DEBUG Setting UI language to [LanguageID] with locale [LocaleID] 6.4.4 DEBUG Setting language branch to [LanguageID] 6.5 Logger EPiServer.Core.DynamicPropertyTree 6.5.1 ERROR - exception Error initializing dynamic properties. 6.6 Logger EPiServer.Core.PageReference 6.6.1 WARN The ParseUrl() method is supposed to be called with a root-relative URL, i.e. start with a single /. This warning indicates a risk that the caller has misunderstood the contract, and thus will get unexpected results. 6.6.2 WARN The ParseURL() method is not supposed to be called with something starting with //, which would be the start of a FQDN, not a root-relative directory spec. Most likely the caller has not validated it s arguments properly. 6.6.3 WARN The ParseURL() method has caught an EPiServerException, probably because of an invalid URL, and will now return PageReference.Empty. 6.7 Logger EPiServer.Core.PropertyXForm 6.7.1 ERROR Can t load XForm id= <XForm id> because <excepötion>. 6.7.2 ERROR Using an empty form because it's not possible to load XForm id= <XForm id> because <exception>

Site Information Logging Reference 17 7 WebControls 7.1 Logger EPiServer.WebControls.PageSearch Added in 4.40. 7.1.1 INFO Search query <x> returned <count> matches The PageSearch control was invoked with x as query string. This information is useful to track to find out what visitors are interested in. 8 ClientTools 8.1 Logger EPiServer.ClientTools.ContentImport Added in 4.40. 8.1.1 DEBUG Starting import of content to page [pagelink] for extension [extension] Invoked whenever a user this Save and view from for example the Office Add-In. 8.1.2 DEBUG Done import of content to page [pagelink] for extension [extension] 8.1.3 ERROR exception Failed import of content to page [pagelink] for extension [extension] 8.1.4 INFO Uploaded file for page [pagelink] received: [filename] Error while user hits Save and view from for example the Office Add-In. For example the Office Add-In will trigger this event while uploading files 9 Security 9.1 Logger EPiServer.Security.PageAccessControlList Added in 4.41. 9.1.1 INFO The access settings for pageid: {pagelinkid} have been saved (nonrecursive) by user {CurrentUser} 9.1.2 INFO The access settings for pageid: {pagelinkid} have been saved recursively by user {CurrentUser} 9.1.3 INFO The access settings for pageid: {pagelinkid} have been added recursively by user {CurrentUser} 9.1.4 INFO The access settings for pageid: {pagelinkid} have been removed recursively by user {CurrentUser} Logged each time non-recursive access settings are saved. Logged each time recursive access settings are saved. Logged each time recursive access settings are added. Logged each time recursive access settings are removed. 9.1.5 DEBUG {CurrentUser} modified the access-rights to page: {PageID} for {1 st _User_or_Group} to:

18 TTLogging in EPiServer [read][create][edit][delete][publish][administer]. 9.1.6. DEBUG {CurrentUser} modified the access-rights to page: {PageID} for {nth_user_or_group } to: [read][create][edit][delete][publish][administer] 9.1.7 DEBUG {CurrentUser} removed all accessrights for {1 st _removed_user_or_group} to page: {PageID}.. DEBUG {CurrentUser} removed all accessrights for {nth_removed_user_or_group} to page: {PageID} Logged for each user that is set or removed (recursive or non-recursive) from the access-list for the current page. 9.2 Logger EPiServer.Security.LdapAuthenticationProvider Added in 4.41. 9.2.1 ERROR - exception Error in LDAP authentication An exception occurred during the authentication against an LDAP source. 9.2.2 DEBUG Could not find LDAP sync section in configuration file. Added in 4.51. 9.2.3 Error Error reading user object from ldap while synchronizing user attributes for user {User-CN}. Added in 4.51. 9.2.4 INFO Synchronized values for user {User-CN}. Added in 4.51. 9.2.5 Error Exception Error synchronizing LDAP values for user {User-CN}. Added in 4.51. 9.2.6 DEBUG Could not find attribute {attributename} for user {User-CN}. Added in 4.51. 9.3 Logger EPiServer.Security.ClearTrustAuthentication Added in 4.41. 9.3.1 Error exception Error in ClearTrust authentication An exception occurred during the authentication against ClearTrust. 9.4 Logger EPiServer.Security.AuthenticationProvider Added in 4.50. 9.4.1 WARN Failed authentication attempt: {UserName}. IP: {IPAddress}. 9.4.2 INFO User was authenticated: {UserName}. IP: {IPAddress}. All authentication providers failed to authenticate user An authentication provider successful authenticated user 9.4.3 INFO User was denied An authentication provider set the IsDenied flag. IP: {IPAddress}.

Site Information Logging Reference 19 10 Mirroring/Export/Import Added in 4.50. 10.1 Logger EPiServer.Enterprise.Mirroring.MirroringManager 10.1.1 INFO Applying changes for channel {channel name} 10.1.2 INFO Executing channel {channel name} 10.1.3 DEBUG Impersonating user {username} for channel {channel name} 10.1.4 DEBUG Setting language to {language id} for channel {channel name} 10.1.5 DEBUG Reverting impersonation to user {user name} for channel {channel name} 10.1.6 ERROR exception Failed to execute publisher {name} on channel {name} 10.2 Logger EPiServer.Enterprise.Mirroring.Destinations.HtmlMirroring 10.2.1 DEBUG Downloading url {url} 10.2.2 WARN Failed to download {url}, retry {x}/{y} 10.2.3 ERROR exception Failed to download {url] 10.3 Logger EPiServer.Enterprise.Mirroring.Destinations.PageMirroring 10.3.1 WARN Remote warning during import: {message] 10.3.2 ERROR Remote error during import: {message} 10.4 Logger EPiServer.Enterprise.Mirroring.Destinations.FileSystemBase 10.4.1 DEBUG Received create command for {Path} 10.4.2 DEBUG Received delete command for {Path} 10.4.3 DEBUG Received move command for {Path} [{OrgininalPath}] 10.4.4 DEBUG Received update command for {Path} [{OrgininalPath}] 10.4.5 ERROR Directory is already in use by other mirroring destination 10.4.6 WARN Mirroring configuration is missing information about the destination Id in folder x 10.5 Logger EPiServer.Enterprise.ExportImportBase 10.5.1 DEBUG Export/import progress: {message} 10.5.2 WARN Export/import warning: {message} 10.5.3 ERROR Export/import error: {message} 10.6 Logger EPiServer.Enterprise.Mirroring.Destinations.ContentWriter 10.6.1 INFO Encoding for files is {encoding name} codepage {encoding codepage} 10.6.2 ERROR - exception Unsupported encoding {encoding name}

20 TTLogging in EPiServer 10.7 Logger EPiServer.Admin. ContentMirroringEdit 10.7.1 ERROR - exception Can't add a new channel 11 Log Service Added in 4.50. 11.1 Logger EPiServer.Log.Core.FileLoaderServer 11.1.1 WARN Problem reading message from file 11.1.2 WARN Problem analyzing message 11.1.3 WARN The configuration do not specify the path to the log files 11.1.4 DEBUG Handling <rps> rps 11.2 Logger EPiServer.Log.Analyzer.PageSpan 11.2.1 WARN Problem parsing message 11.2.2 ERROR Load PageSpan failed 11.2.3 ERROR Save PageSpan definition failed 11.2.4 ERROR Delete PageSpan failed 11.3 Logger EPiServer.Log.Analyzer.FileAnalyzer 11.3.1 INFO Creating file 11.4 Logger EPiServer.Log.Analyzer.TimeSpanAnalyzerView 11.4.1 ERROR Get statistics failed 11.4.2 ERROR Error Listing PageSpans 11.4.3 ERROR Problem executing method GetHits 11.5 Logger EPiServer.Log.Analyzer.RealTimeAnalyzer 11.5.1 DEBUG Problem getting root node 11.5.2 DEBUG No configuration for the publishedpagesmaxcount 11.6 Logger EPiServer.Log.Analyzer.RealTimeAnalyzerView 11.6.1 ERROR Problem getting referrers 11.7 Logger EPiServer.Log.Analyzer.PageSpanList 11.7.1 ERROR Problem adding page span

Site Information Logging Reference 21 11.8 Logger EPiServer.Log.Analyzer.TimeSpanAnalyzer 11.8.1 DEBUG Loading Time Span Analyzer 11.8.2 ERROR Listing page spans failed 11.8.3 WARN Problem handling the message 11.8.4 DEBUG Datamining {interval} 11.8.5 DEBUG DataMining find {count} interval:{interval} 11.8.6 DEBUG Create/Load a new interval of type 11.8.7 DEBUG Adding interval start={start} stop={stop} 11.8.8 DEBUG Create/Load a new interval of type 11.9 Logger EPiServer.Log.Analyzer.AnalyzerBase 11.9.1 DEBUG Listening for messages at {URI} for {class} 11.9.2 WARN The protocol '{protocol} ' is not supported by default 11.9.3 ERROR Configuration error - can't create view for the analyzer 11.10 Logger EPiServer.Log.Core.LogServiceView 11.10.1 WARN No log service is stated 11.10.2 ERROR Problem stopping log service 11.11 Logger EPiServer.Log.Core.Messagehandler 11.11.1 INFO Shutting down log service 11.11.2 ERROR Analyzing message failed 11.12 Logger EPiServer.Log.Core.UdpServer 11.12.1 DEBUG Starting Udp Server, listen on port {port} 11.12.2 WARN The configuration do not specify the UDP post to use, using port {port} 11.12.3 ERROR Can not handle a UDP message 11.12.4 ERROR Problem receiving UDP message 11.13 Logger EPiServer.Log.Core.UdpServer 11.13.1 ERROR Usage:EPiServer.Log.Service.exe <DEBUG FILE> 11.13.2 ERROR Can not load classes, probably the config file {file} 11.13.3 DEBUG Initialize Log service 11.13.4 INFO Starting Log Service 11.13.5 INFO Stopping Log service

22 TTLogging in EPiServer 12 XForms Added in 4.50. 12.1 Logger EPiServer.XForms.XForm 12.1.1 ERROR Load Xform failed 12.1.2 ERROR Save Xform failed 12.1.3 ERROR Posting validation failed 12.1.4 ERROR Delete Xform failed 12.1.5 ERROR Get posted data failed 12.2 Logger EPiServer.XForms.XFormData 12.2.1 ERROR Load XFormData failed 12.2.2 ERROR Send form posting failed 12.2.3 ERROR Get value failed 12.2.4 ERROR Delete XformData failed 12.3 Logger EPiServer.XForms.Implementation.DatabaseConnection 12.3.1 ERROR Problem storing posting to database 12.4 Logger EPiServer.XForms.Implementation.EMailConnection 12.4.1 ERROR Cant send email for posting 12.5 Logger EPiServer.XForms.Implementation.HttpConnection 12.5.1 ERROR Fail on send request to custom URL 12.6 Logger EPiServer.XForms.WebControls.XFormControl 12.6.1 ERROR Can not create form 12.7 Logger EPiServer.XForms.WebControls.XFormFolder 12.7.1 ERROR Create XFormFolder failed 12.7.2 ERROR List XFormsFolders failed 12.7.3 ERROR Get Folder for Xform failed 13 Multi Language Added in 4.50.

Site Information Logging Reference 23 13.1 Logger EPiServer.Util.MultiLanguageRuntime 13.1.1 INFO Updated status for page version {PageID}.{WorkID} to {SaveAction} 13.1.2 INFO Page included changed propeties for several languages, created new version(pageid.workid) for {language} 13.1.3 INFO Cleared properties for all languages except {language} 13.2 Logger EPiServer.Util.VersionMerge 13.2.1 DEBUG Page: {PageID} differed for {language} (Propertyname={propertyname}) 14 WSRP Reserved for WSRP log messages. 15 Web Parts Reserved for Web Parts log messages 16 System Controls 16.1 Logger EPiServer.SystemControls.LongStringFriendlyUrlRender 16.1.1 DEBUG Can't parse the link {link} A link that can be translated to a EPiServer link is detected 16.1.2 ERROR Error when replacing HTML for friendly URL A property string can t not be parsed 17 Util 17.1 Logger EPiServer.Util.FriendlyUrlModule 17.1.1 DEBUG FriendlyUrlModule makes a permanent redirect from='<url> to= <url> A permanent redirect is done for friendly URL 17.1.2 DEBUG FriendlyUrlModule rewrite A path rewrite is done for friendly URL

24 TTLogging in EPiServer path from='<url> to= <url> 17.1.3 DEBUG FriendlyUrlModule makes a permanent site redirect from='<url> to= <url> A permanent site redirect is done for friendly URL 17.2 Logger EPiServer.Util.DelayedPublishJob 17.2.1 ERROR Error when trying to publish delayed version {PageID}.{WorkID} An exception occurred when trying to publish a page version. 17.3 Logger EPiServer.Util.EmptyWastebasketJob 17.3.1 ERROR Error when trying to delete page from recycle bin {PageID}.{WorkID} An exception occurred when trying to delete a page from the recycle bin. Additional Information The following keys will be added to the Mapped Diagnostic Context (MDC in log4net terms) when possible: Key name PageReference DataFactoryPage UnifiedFileSystemPath Description String representation of the current pages page link. Usually the last value set by PageBase.CurrentPageLink String representation of the page reference passed in to a DataFactory method. The path affected by a log event from EPiServer.FileSystem namespace