gpt4 book ai didi

c# - 使用C#记录错误

转载 作者:行者123 更新时间:2023-12-03 08:46:17 25 4
gpt4 key购买 nike

当前有一个我正在Powershell中运行的脚本,该脚本可同时运行多个脚本,并将在自定义消息中运行的脚本记录在.txt文件中。

但是,在执行时,我希望也可以将可能发生的任何错误记录在一个单独的.txt文件中,详细说明该错误及其影响的脚本。我知道我需要使用“尝试/捕获”功能,但是我不认为该使用什么作为捕获功能。以下是我已经得到的:

ConvDlls;

clear;
$sqldir = "";
$DBPath = "";

$ConType = "ADS";



$SharedFunc = New-Object PelCFunc.SharedFunc;
$DS = New-Object System.Data.DataSet;
$Log = [MessageLogging.Msgs]::Instance;
$FullDBPath = [System.IO.Path]::Combine($DBPath,"PICS.Add");
$ConID = [guid]::NewGuid.ToString();
$Database = [PelCons.DatabaseManualMode]::Instance($ConID);



###Setup Database object
$Database.ConType = $ConType;
$Database.Connection = $SharedFunc.PelNewADSCon($FullDBPath);
Write-Output "Connection Created";


$Database.Connection.Close();
$Database.Connection.Open();

foreach ($file in [System.IO.Directory]::GetFiles($sqldir,"*.sql",
[System.IO.SearchOption]::AllDirectories))
{
$file = [System.IO.FileInfo]::new($file);


$Log.SetLogDir("");
$str_msg = "****This script has been run successfully****`r`n`r`nScript
Run:$file`r`n`r`n$([System.IO.File]::ReadAllText($file.FullName))";


$Log.AddMsg($str_msg);
Write-Output $str_msg;


$sql = [System.IO.File]::ReadAllText($file.FullName);


$Database.Command.CommandText = $sql;
{

try{
$Database.Command.ExecuteNonQuery();
}

catch (exception ex)
{

}

}
}
$Database.Connection.Close();

Write-Output "Complete";

最佳答案

您可以使用$MyInvocation变量(属性.MyCommand)来获取有关脚本的信息。在catch块中,例如,将所需信息写入所需文件中。

 out-file "$($MyInvocation.MyCommand.Name).log"

您还可以使用 $Error[0]获取有关上一个错误的信息。

关于c# - 使用C#记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com