Rozwiązywanie problemów z plikami dziennika AWS w IronPDF
Izolowanie logów IronPDF przy użyciu zasobnika S3
Podczas rozwiązywania problemów z IronPDF w środowisku AWS bardzo pomocne jest uzyskanie przejrzystych, dedykowanych logów z samej biblioteki IronPDF. Takie podejście pozwala uniknąć złożoności związanej z przeglądaniem połączonych strumieni logów z usług takich jak Amazon CloudWatch Logs lub AWS Application Insights.
Usługi takie jak CloudWatch Logs i Application Insights zazwyczaj agregują logi z różnych źródeł, w tym z kodu aplikacji, innych bibliotek i usług AWS. Takie przeplatanie się elementów może utrudniać precyzyjne zidentyfikowanie komunikatów dotyczących konkretnie IronPDF oraz bezpośrednią diagnozę problemów związanych z generowaniem lub obróbką plików PDF.
Aby sprostać tym wyzwaniom, zalecamy skonfigurowanie IronPDF tak, aby zapisywał swoje logi do dedykowanego pliku w pamięci tymczasowej środowiska obliczeniowego AWS. Ten wyodrębniony plik dziennika można następnie łatwo przesłać do zasobnika Amazon S3 w celu wygodnego pobrania, przejrzenia i udostępnienia działowi pomocy technicznej w razie potrzeby.
Włączanie i konfigurowanie rejestrowania IronPDF
var awsTmpPath = @"/tmp/";
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
IronSoftware.Logger.LogFilePath = awsTmpPath + "default.txt";
var awsTmpPath = @"/tmp/";
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
IronSoftware.Logger.LogFilePath = awsTmpPath + "default.txt";
Dim awsTmpPath = "/tmp/"
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All
IronSoftware.Logger.LogFilePath = awsTmpPath & "default.txt"
Prześlij plik dziennika do zasobnika Amazon S3
// File path in the Lambda /tmp directory
var filePath = $"/tmp/default.txt";
// Read the file as byte array
var fileBytes = await File.ReadAllBytesAsync(filePath);
// Upload the text file to S3
using (var memoryStream = new MemoryStream(fileBytes))
{
var request = new PutObjectRequest
{
BucketName = bucketName,
Key = "default.txt",
InputStream = memoryStream,
ContentType = "text/plain",
};
await _s3Client.PutObjectAsync(request);
}
// File path in the Lambda /tmp directory
var filePath = $"/tmp/default.txt";
// Read the file as byte array
var fileBytes = await File.ReadAllBytesAsync(filePath);
// Upload the text file to S3
using (var memoryStream = new MemoryStream(fileBytes))
{
var request = new PutObjectRequest
{
BucketName = bucketName,
Key = "default.txt",
InputStream = memoryStream,
ContentType = "text/plain",
};
await _s3Client.PutObjectAsync(request);
}
' File path in the Lambda /tmp directory
Dim filePath = $"/tmp/default.txt"
' Read the file as byte array
Dim fileBytes = Await File.ReadAllBytesAsync(filePath)
' Upload the text file to S3
Using memoryStream As New MemoryStream(fileBytes)
Dim request = New PutObjectRequest With {
.BucketName = bucketName,
.Key = "default.txt",
.InputStream = memoryStream,
.ContentType = "text/plain"
}
Await _s3Client.PutObjectAsync(request)
End Using
W przypadku usług rejestrowania specyficznych dla AWS prosimy zapoznać się z następującą dokumentacją:
Amazon CloudWatch
Usługa Amazon CloudWatch Logs umożliwia gromadzenie i przechowywanie logów z zasobów, aplikacji i usług niemal w czasie rzeczywistym.
Dodatkowe logowanie
Więcej informacji na temat Amazon CloudWatch Logs, Amazon S3 Logs oraz logów wysyłanych do Kinesis Data Firehose można znaleźć na stronie:
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
Typowe usługi
AWS Lambda
https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html
Amazon EC2
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html

