EventLog.ModifyOverflowPolicy(OverflowAction, Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當事件記錄檔到達最大檔案大小時,變更寫入新項目的已設定行為。
public:
void ModifyOverflowPolicy(System::Diagnostics::OverflowAction action, int retentionDays);
public void ModifyOverflowPolicy (System.Diagnostics.OverflowAction action, int retentionDays);
[System.Runtime.InteropServices.ComVisible(false)]
public void ModifyOverflowPolicy (System.Diagnostics.OverflowAction action, int retentionDays);
member this.ModifyOverflowPolicy : System.Diagnostics.OverflowAction * int -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.ModifyOverflowPolicy : System.Diagnostics.OverflowAction * int -> unit
Public Sub ModifyOverflowPolicy (action As OverflowAction, retentionDays As Integer)
參數
- action
- OverflowAction
將新的項目寫入事件記錄檔的溢位行為。
- retentionDays
- Int32
每一個事件記錄檔項目會保留的最小天數。 只有當 action
設定為 OverwriteOlder 時,才會使用這個參數。
- 屬性
例外狀況
action
不是有效的 OverflowAction 值。
retentionDays
小於 1 或大於 365。
範例
下列範例會顯示指定事件記錄檔的已設定溢位原則,並允許用戶選取事件記錄檔的新溢位原則設定。
// Display the current event log overflow settings, and
// prompt the user to input a new overflow setting.
void ChangeEventLogOverflowAction( String^ logName )
{
if ( EventLog::Exists( logName ) )
{
// Display the current overflow setting of the
// specified event log.
EventLog^ inputLog = gcnew EventLog( logName );
Console::WriteLine( " Event log {0}", inputLog->Log );
OverflowAction logOverflow = inputLog->OverflowAction;
Int32 numDays = inputLog->MinimumRetentionDays;
Console::WriteLine( " Current overflow setting = {0}", logOverflow );
if ( logOverflow == OverflowAction::OverwriteOlder )
{
Console::WriteLine( "\t Entries are retained a minimum of {0} days.", numDays );
}
// Prompt user for a new overflow setting.
GetNewOverflowSetting( &logOverflow, &numDays );
// Change the overflow setting on the event log.
if ( logOverflow != inputLog->OverflowAction )
{
inputLog->ModifyOverflowPolicy( logOverflow, numDays );
Console::WriteLine( "Event log overflow policy was modified successfully!" );
}
else
{
Console::WriteLine( "Event log overflow policy was not modified." );
}
}
else
{
Console::WriteLine( "Event log {0} was not found.", logName );
}
}
// Display the current event log overflow settings, and
// prompt the user to input a new overflow setting.
public static void ChangeEventLogOverflowAction(String logName)
{
if (EventLog.Exists(logName))
{
// Display the current overflow setting of the
// specified event log.
EventLog inputLog = new EventLog(logName);
Console.WriteLine(" Event log {0}", inputLog.Log);
OverflowAction logOverflow = inputLog.OverflowAction;
Int32 numDays = inputLog.MinimumRetentionDays;
Console.WriteLine(" Current overflow setting = {0}",
logOverflow.ToString());
if (logOverflow == OverflowAction.OverwriteOlder)
{
Console.WriteLine("\t Entries are retained a minimum of {0} days.",
numDays.ToString());
}
// Prompt user for a new overflow setting.
GetNewOverflowSetting(ref logOverflow, ref numDays);
// Change the overflow setting on the event log.
if (logOverflow != inputLog.OverflowAction)
{
inputLog.ModifyOverflowPolicy(logOverflow, numDays);
Console.WriteLine("Event log overflow policy was modified successfully!");
}
else
{
Console.WriteLine("Event log overflow policy was not modified.");
}
}
else
{
Console.WriteLine("Event log {0} was not found.", logName);
}
}
' Display the current event log overflow settings, and
' prompt the user to input a new overflow setting.
Shared Sub ChangeEventLogOverflowAction(logName As String)
If EventLog.Exists(logName) Then
Dim inputLog As EventLog = New EventLog(logName)
Console.WriteLine(" Event log {0}", inputLog.Log)
Dim logOverflow As OverflowAction = inputLog.OverflowAction
Dim numDays As Int32 = inputLog.MinimumRetentionDays
Console.WriteLine(" Current overflow setting = {0}", _
logOverflow.ToString())
' Prompt user for a new overflow setting.
GetNewOverflowSetting(logOverflow, numDays)
If Not logOverflow = inputLog.OverflowAction Then
inputLog.ModifyOverflowPolicy(logOverflow, numDays)
Console.WriteLine("Event log overflow policy was modified successfully!")
Else
Console.WriteLine("Event log overflow policy was not modified.")
End If
Else
Console.WriteLine("Event log {0} was not found.", logName)
End If
End Sub
備註
事件記錄檔的溢位行為會指定將新專案寫入已達到檔案大小上限的記錄檔時,會發生什麼情況。
注意
只有在事件記錄檔達到檔案大小上限時,溢位行為才會生效。 溢位行為不會影響將新專案寫入可容納其他事件記錄檔項目的記錄檔。
方法 ModifyOverflowPolicy 會設定事件記錄檔的溢位行為。 EventLog 實例。 針對屬性所 Log 指定的事件記錄檔呼叫這個方法之後, OverflowAction 和 MinimumRetentionDays 屬性值會反映新設定的溢位行為。
注意
這個屬性代表這個實例所表示之事件記錄檔的組態設定。 當事件記錄檔達到其大小上限時,此屬性會指定操作系統如何處理針對事件記錄檔註冊的所有事件來源所寫入的新專案。
將 action
參數設定為 OverwriteAsNeeded ,表示當達到最大大小時 EventLog ,新專案會覆寫最舊的專案。 action
如果參數設定為 OverwriteAsNeeded,則會retentionDays
忽略參數值。
action
將 參數設定為 OverwriteOlder ,表示當 達到其大小上限時EventLog,每個新專案都會覆寫較舊的專案。 使用 retentionDays
參數,指定事件必須保留在記錄中的天數。 新專案不會覆寫在保留範圍內寫入的事件。
將 action
參數設定為 DoNotOverwrite ,以在達到記錄大小上限時捨棄新事件。 action
如果參數設定為 DoNotOverwrite,則會retentionDays
忽略參數值。
警告
將溢位原則設定為 DoNotOverwrite ,指定當事件記錄檔已滿時,會捨棄新專案。 如果您使用此設定,請確定事件記錄檔會定期封存並清除,以避免達到其大小上限。