WMS Client Logging Plug-in Properties
The WMS Client Logging plug-in included with Windows Media Services is an event handler plug-in that monitors event notices raised by the server and saves the information gathered to a log file. For more information about administering the WMS Client Logging plug-in and the log file it creates, see Windows Media Services Help.
You can use the IWMSLoggingAdmin interface to configure the following properties for the plug-in.
Property |
Description |
---|---|
CurrentLogFileName |
Retrieves the name of the current log file. |
Cycle |
Retrieves a value indicating how often the log file cycles. |
Dirty |
Retrieves a Boolean value indicating whether the plug-in properties have changed. |
LoggedEvents |
Specifies and retrieves an enumeration value indicating the type of connection for which events are logged. |
MaxSize |
Specifies and retrieves the maximum permitted size of the log file. |
RoleFilter |
Specifies and retrieves the name of the role attribute in a playlist that will be used when filtering logged events. |
Template |
Specifies and retrieves the log file template path. |
UseBuffering |
Specifies and retrieves a Boolean value that indicates whether logging data is buffered before it is flushed to the log file. |
UseLocalTime |
Specifies and retrieves a Boolean value indicating whether local time is used. |
UseUnicode |
Specifies and retrieves a Boolean value indicating whether the log file contains Unicode or ANSI text. |
V4Compat |
Specifies and retrieves a Boolean value indicating whether log files are created in a format compatible with Windows Media Services version 4 and version 4.1. |
The IWMSLoggingAdmin interface also exposes the following methods.
Method |
Description |
---|---|
CycleNow |
Forces a log file cycle regardless of the value set by any previous invocation of the Cycle property |
ExpandTemplate |
Retrieves the expanded path of the template. |
Flush |
Causes all data currently in the buffer to be flushed to the log file. |
IsPathValid |
Validates the path to the log file. |
The following examples illustrate how to configure properties for the WMS Client Logging plug-in.
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.
Imports System.Runtime.InteropServices
Private Sub SetClientLogPluginProps()
' Declare variables.
Dim Server As WMSServer
Dim Plugin As IWMSPlugin
Dim LogAdmin As IWMSLoggingAdmin
Try
' Create a new WMSServer object.
Server = New WMSServer()
' Retrieve the IWMSPlugin object for the
' WMS Client Logging plug-in.
Plugin = Server.EventHandlers("WMS Client Logging")
' Retrieve the administrative interface for the plug-in.
LogAdmin = Plugin.CustomInterface()
' Set the current log file name template.
LogAdmin.Template = "%SystemRoot%\System32\LogFiles\WMS\<V>\WMS_<Y><m><d>.log"
' Specify how often the log file is cycled.
LogAdmin.Cycle = WMS_LOG_CYCLE_TYPE.WMS_LOG_CYCLE_DAY
Catch excCom As COMException
' TODO: Handle COM exceptions.
Catch exc As Exception
' TODO: Handle exceptions here.
Finally
' TODO: Perform clean-up here.
End Try
End Sub
C# Example
using Microsoft.WindowsMediaServices.Interop;
using System.Runtime.InteropServices;
// Declare variables.
WMSServer Server;
IWMSPlugin Plugin;
IWMSLoggingAdmin LogAdmin;
try
{
// Create a new WMSServer object.
Server = new WMSServerClass();
// Retrieve the IWMSPlugin object for the
// WMS Client Logging plug-in.
Plugin = Server.EventHandlers["WMS Client Logging"];
// Retrieve the administrative interface for the plug-in.
LogAdmin = (IWMSLoggingAdmin)Plugin.CustomInterface;
// Set the current log file name template.
LogAdmin.Template = "%SystemRoot%\\System32\\LogFiles\\WMS\\<V>\\WMS_<Y><m><d>.log";
// Specify how often the log file is cycled.
LogAdmin.Cycle = WMS_LOG_CYCLE_TYPE.WMS_LOG_CYCLE_DAY;
}
catch (COMException comExc) {
// TODO: Handle COM exceptions.
}
catch (Exception exc)
{
// TODO: Handle exceptions here.
}
finally
{
// TODO: Perform clean-up here.
}
C++ Example
#include <windows.h>
#include <atlbase.h>
// To access system plug-in interfaces, the
// type library must be imported as shown.
#import "WMSServerTypeLib.dll" no_namespace named_guids \
raw_interfaces_only
// Declare variables and interface pointers.
IWMSServer* pServer = NULL;
IWMSPlugins* pPlugins = NULL;
IWMSPlugin* pPlugin = NULL;
IDispatch* pDispatch = NULL;
IWMSLoggingAdmin* pLogAdmin = NULL;
CComVariant varIndex;
CComBSTR bstrTemplate;
HRESULT hr = S_OK;
// Initialize the COM library and retrieve a pointer
// to an IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
NULL,
CLSCTX_ALL,
IID_IWMSServer,
(void **)&pServer);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to an IWMSPlugins interface
// containing the collection of event handler plug-ins.
hr = pServer->get_EventHandlers(&pPlugins);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the IWMSPlugin interface for the
// WMS Client Logging plug-in.
varIndex = "WMS Client Logging";
hr = pPlugins->get_Item(varIndex, &pPlugin);
if (FAILED(hr)) goto EXIT;
// Retrieve an IDispatch pointer to the administration
// interface for the plug-in.
hr = pPlugin->get_CustomInterface(&pDispatch);
if (FAILED(hr)) goto EXIT;
// Call QueryInterface() to retrieve a pointer to the
// IWMSLoggingAdmin interface.
hr = pDispatch->QueryInterface(IID_IWMSLoggingAdmin, (void**)&pLogAdmin);
if (FAILED(hr)) goto EXIT;
// Set the current log file name template.
bstrTemplate = "%SystemRoot%\\System32\\LogFiles\\WMS\\<V>\\WMS_<Y><m><d>.log";
hr = pLogAdmin->put_Template(bstrTemplate);
if (FAILED(hr)) goto EXIT;
// Set the enumeration value indicating
// how often the log file is cycled.
hr = pLogAdmin->put_Cycle(WMS_LOG_CYCLE_DAY);
if (FAILED(hr)) goto EXIT;
EXIT:
// TODO: Release temporary COM objects and uninitialize COM.
See Also
Reference
IWMSLoggingAdmin Object (Visual Basic .NET)