ILivingstonAccounting::SetLoggingOptionsEx
Server extension should call this method or SetLoggingOptions
to set logging options before using LogPacket
method. This method allows to specify all possible logging parameters,
while SetLoggingOptions provides only basic set of them,using default
values for other.
HRESULT SetLoggingOptionsEx(
[in] BSTR fileName,
[in] BSTR fileNameExtension,
[in] ROLLOVERMODE rllvrMode,
[in] VARIANT_BOOL logInterim,
[in] VARIANT_BOOL autoFlush,
[in] unsigned long idleTime,
[in] BSTR namePattern,
[in] unsigned long maxFileSize);
Parameters
- fileName
- [in] File name where accounting information will be logged. Note,
that this parameter defines file name and path without file extension,
and a suffix is added to the end of file name. This suffix depends on
rllvrMode or namePattern parameter. This parameter can't
be NULL. If the file name is prefixed by .\ then it's created in the
same folder with the sever executable.
- fileNameExtension
- [in] Extension that is added to the file name specified by fileName.
If the value of fileNameExtension is NULL, logfile has no extension.
- rllvrMode
- [in] This parameter defines how often new logfile is created automatically
by the server. Unless it is not specified explicitly in namePattern
parameter, rllvr defines the suffix that is added to a
new logfile:
rllvrMode |
Suffix mask |
RM_NONE |
No suffix is used |
RM_HOURLY |
yyyyMMddHH |
RM_ONSIZE |
yyyyMMddHH |
RM_DAILY |
yyyyMMdd |
RM_WEEKLY |
yyyyMMdd |
RM_MONTHLY |
yyyyMM |
All possible values of letters used in suffix are described
here. Server extension should choose rollover mode depending on
estimated accounting data amount.
- logInterim
- [in] Defines whether the server should log accounting data with the
attribute Acct-Status-Type=Interim (VARIANT_TRUE) or not (VARIANT_FALSE).
Default value is VARIANT_TRUE, used if SetLoggingOptions
is called instead of SetLoggingOptionsEx.
- autoFlush
- [in] Defines whether server will flush file buffers immediately after
calls to LogPacket or LogPacketEx (VARIANT_TRUE) or not
(VARIANT_FALSE). Turning flushing on may decrease the performance slightly
but prevents possible loss of data. Default value is VARIANT_FALSE,
used if SetLoggingOptions
is called instead of SetLoggingOptionsEx.
- idleTime
- [in] Reserved for future use and is ignored in ClearBox v1.2.
- namePattern
- [in] Defines the suffix that is appended to the logfile name specified
by fileName parameter. If namePattern is NULL, the suffix
is defined by rllvrMode parameter. If namePattern is a
valid string, it overrides the prefix defined by rllvrMode.
Besides special characters substituted by date and time values (full
list of possible characters can be found here),
this string may contain any other characters that are allowed in file
names.
- maxFileSize
- [in] Specifies the maximum size (in bytes) logfile may have. This
parameter is used when rllvrMode is RM_ONSIZE. After logfile
size exceeds this limit, new file is created automatically. Default
value is 5242880 bytes, used if SetLoggingOptions
is called instead of SetLoggingOptionsEx.
Return Values
This method may return E_INVALIDARG if fileName is NULL.
Thread Safety
This method can be called from any thread.
Memory Management
Server extension should allocate and free memory for fileName,
fileNameExtension and namePattern parameters.
Remarks
This method may be called not only before the first call to LogPacket.
Calling this method doesn't affect existing logfile. It's common case
to use it from ICommonExtender::InitializeEx.
Example Code
This code uses m_pServer as IServer interface pointer stored
in ICommonExtenderEx::InitializeEx
implementation. It makes server logging accounting data into the file
c:\Logs\MyLog_2003_03_30.txt, for example, and the next file name is c:\Logs\MyLog_2003_03_31.txt
after 24 hours will elapse.
ILivingstonAccounting* pAcc=NULL;
m_pServer->QueryInterface(IID_ILivingstonAccounting,(void**)&pAcc;
//QueryInterface will always succeed
BSTR fName=SysAllocString(L"c:\\Logs\\Mylog_");
BSTR fExt=SysAllocString(L"txt");
BSTR nPattern=SysAllocString(L"yyyy_MM_dd");
pAcc->SetLoggingOptionsEx(fName,fExt,RM_DAILY,VARIANT_TRUE,VARIANT_TRUE,
0,nPattern,0);
SysFreeString(fName);
SysFreeString(fExt);
SysFreeString(nPattern);
// Call to pAcc->Release() is not necessary
See Also
ILivingstonAccounting, Server
services, SetLoggingOptions,
LogPacket
© 2001-2003 XPerience Technologies. www.xperiencetech.com
|