November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
Product version: |
EPiServer CMS 5 SP1 |
---|---|
Document version: |
1.0 |
Document creation date: |
07-06-2006 |
Document last saved: |
12-01-2008 |
The purpose of the Log Service is to centrally handle log messages in one place for the entire Web site. This document describes how to install the Log Service and includes information on how to troubleshoot the Log Service.
There are three logical parts in the log service:
For the full installation with the base example analyzers, the log service has the same requirements as EPiServer CMS5 . The log service in the base form does not require a database, Web service or an EPiServer CMS 5 installation.
Log service also requires:
Log service can be installed in one of two ways, either with EPiServer CMS Manager or manually. Instructions for how to install in both ways are described in this chapter.
Installing the Log Service with EPiServer CMS Manager
The log service is installed as a part of the EPiServer CMS installation, i.e. installing any version of EPiServer CMS 5 will also install the log service.
Installing the Log Service manually
Follow the instructions below to install the log service manually.
If an older installation of the log service exists, uninstall this service according to the "Removing Log Service" chapter.
Rename the default configuration file named EPiServer.LogService.exe.config.default (located in the installation directory under %programFiles%/EPiServer.LogService5) to EPiServer.LogService.exe.config.
To configure the log service with a database, the connection string in the configuration file (%programFiles%/EPiServer.LogService5/EPiServer.LogService.exe.config) must be changed. Change the value for the parameter connectionString to a connection string to an EPiServer database.
<configuration>
<episerver.baseLibrary>
<objectStores>
<add type="EPiServer.Implementation.SqlObjectStore, EPiServer.Implementation" id="default">
<parameter name="connectionString" value="Data Source=(local);Database=dbEPiServerDemo450RC3;User Id=usrEPiServerDemo450RC3;Password=password;Network Library=DBMSSOCN;" />
The logging configuration for an EPiServer CMS 5 installation is stored in the EPiServerLog.config file located in the installation's root folder. Two loggers are active by default: page access statistics and page publishing messages. These two loggers will store information about their respective areas in the database specified in the EPiServer.LogService.exe.config file.
Advanced
Logging in EPiServer CMS 5 is based on the log4net product and you can configure the logging behavior of your installation by modifying the configuration in the EPiServerLog.config file. Please visit the log4net site to find the full documentation about log4net and the structure of the configuration. The default configuration file contains the following configuration:
A component that generates a log message with a transparent .gif file for a Web page is available. The component generates a JavaScript, which in turn generates the path to the .gif file that generates the log message to the log service.
<EPiServer:LogGenerator runat="server" ID="PixelImg" />
In the sample project this component is implemented in the default framework/master page, located in the file \templates\Public\MasterPages\MasterPage.master.
Only one log service is configured for all Web servers on a Web farm. For the sample analyzers, each Web server sends log messages to the log service over UDP and the log service publishes its results on a TCP/SOAP Web service that can be connected for all Web servers.
Example for sending log messages to a remote log service:
<appender name="UdpAppender" type="EPiServer.Diagnostics.EPiServerUdpAppender, EPiServer">
<remoteAddress value="192.168.150.237" />
<remotePort value="7070" />
</appender>
<view type="EPiServer.Log.Analyzer.TimeSpanAnalyzerView, EPiServer.Log.Analyzers"
protocol="TCP/SOAP"
endpoint="soap.tcp://localhost/TimeSpanAnalyzerView"
via="soap.tcp://logservice.my.se/TimeSpanAnalyzerView "/>
TimeSpanAnalyzerView client =new TimeSpanAnalyzerView();
Uri address = new Uri("soap.tcp://localhost/TimeSpanAnalyzerView");
Uri via = EPiServer.Configuration.Settings.Instance.LogServiceUrl;
client.Destination = new Microsoft.Web.Services2.Addressing.EndpointReference(address, via);
Follow the instructions below to remove the Log service.
The first page of the sample site reads “The log service could not be connected.”
or
The Statistics tab in Edit mode reads “Cannot connect to the log service.”
Cause: The log service cannot be connected by the Web service over TCP/SOAP.
Solution: Verify that the log service is started according to the "Validate that the Log Service is Functional" chapter.
The statistical values are not changing.
Cause: No log messages are generated/come over the UDP channel.
Solution: See the "Check the Log Configuration on the Web Server" chapter.
The Statistics tab in Edit mode reads “The log service is not configured with a database. Saved history will not be shown.”
Cause: The log service is not able to save data into the database.
Solution: See the "Check if the Log Service is Configured" chapter.
The installation directory (%Program files%/EPiServer.LogService5) should contain the executables and the configuration files for the log service. If it is empty, install the service according to the "Manual Installation" chapter.
Verify that the configuration file EPiServerLog.config exists in the Web server's root directory. In the sample project the file is named EPiServerLog.config.Default so it not will start logging automatically.
The configuration file must contain
The configuration file for the Log Service must be called EPiServer.LogService.exe.config and be located in the Log Service home directory (%Program files%\EPiServer.LogService.exe.config).
The log service is, by default, not started automatically when EPiServer is installed the file is called EPiServer.LogService.exe.config.Default.
Important configuration for the Log Service:
<configuration>
<appSettings>
<add key="udpClientPort" value="7070" />
udpClientPort has to be the same value as the Web service log configuration remotePort for the UDPappender located in the file EPiServer.Log.Config.
If there is a reference to the transparent .gif file, there must also be a HTML tag on the page to be included in the statistics. This page should start with:
<img width='1' height='1' alt=''...
This tag generates a transparent .gif file that sends log messages to the Log Service if it is present on the Web site.
The log message that is sent by the transparent .gif has the following looks like this:
2005-04-12 10:52:05,444 |mySite|Page|...
Log4net will not write to the log file if EPiServerLog.Config is corrupt. Test if the configuration is correct by creating a file appender that writes log messages directly to a file and changes the log level for the root logger to DEBUG. If no file is created, the EPiServerLog.Config is corrupt and has to be rewritten.
In the installation directory for the log service, the log server's own log file is located in %Program files%\EPiServer.LogService5\Logs\. If this file is not present, the initial error message is written to the Windows Event Handler on the local machine.
The Log Service log should look like below if the Log Service is started.
Starting Udp Server, listen to port 7070
When you use an EPiServer.LogService in a mixed environment with an EPiServer 4 installation parallel with an EPiServer CMS 5 environment, you must change the port for one of the services. This is done by editing the configuration files for one of the installments.
Change the UDP port for sending log messages
This is done in the EPiServerLog.config file of your site (located in the root folder) by changing the remotePort value for the StatisticsUdpAppender.
Example:
<appender name="StatisticsUdpAppender"
type="EPiServer.Diagnostics.EPiServerUdpAppender, EPiServer">
<remoteAddress value="127.0.0.1" />
<remotePort value="7071" />
</appender>
Change the port for messages for the log service
This is done in the log service configuration file EPiServer.LogService.exe.config located in your %PROGRAMFILES%\EPiServer.LogService (alt. %PROGRAMFILES%\EPiServer.LogService5) folder by changing the value for the udpClientPort to the corresponding port to your site's web.config.
Example:
<appSettings>
<add key="udpClientPort" value="7071" />
</appSettings>
Change the log service port for the Web service
This is done by editing your EPiServer.LogService.exe.config by adding a default port for the soap.tcp transport layer.
Example, Adding a config section for WSE:
<configuration>
<configSections>
<section name="microsoft.web.services3"
type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration,
Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<section name="episerver.baseLibrary"
allowDefinition="MachineToApplication"
allowLocation="false"
type="EPiServer.BaseLibrary.ConfigurationHandler,EPiServer.BaseLibrary" />
</configSections>
</configuration>
And then change the default port for the soap:tcp transport layer :
<microsoft.web.services3>
<messaging>
<transports>
<add scheme="soap.tcp" >
<defaultPort value="8082" />
</add>
</transports>
</messaging>
</microsoft.web.services3>
Change the port for messages in your sites web.config file
This is done by adding the same information as you wrote in the previous section - “Change the log service port for the Web service”, to the web.config of your site.