Sunday, June 9, 2024

Serilog Sinks

Serilog Sinks are the way instruct Serilog to store your logs. The most frequently used  sinks are the File and Console .

When you are doing development it is advisable to try the Debug sink to see your log statements in the Visual Studio Debug window without  having to open a log file.

Here are some of the available sinks.

NameDestinationPackage
Amazon CloudWatchAmazonCloudWatchSerilog.Sinks.AwsCloudWatch
NuGet Version
Amazon DynamoDBDynamoDBSerilog.Sinks.DynamoDB
NuGet Version
Amazon KinesisAmazonKinesisSerilog.Sinks.AmazonKinesis
NuGet Version
Amazon S3AmazonS3Serilog.Sinks.AmazonS3
NuGet Version
AMQPAMQPSerilog.Sinks.AMQP.Batching
NuGet Version
Apache SkywalkingSkywalkingSerilog.Sinks.Skywalking
NuGet Version
Application InsightsApplicationInsightsSerilog.Sinks.ApplicationInsights
NuGet Version
Async WrapperAsyncSerilog.Sinks.Async
NuGet Version
Azure AnalyticsAzureAnalyticsSerilog.Sinks.AzureAnalytics
NuGet Version
Azure App ServiceAzureAppSerilog.Sinks.AzureApp
NuGet Version
Azure Blob StorageAzureBlobStorageSerilog.Sinks.AzureBlobStorage
NuGet Version
Azure CosmosDBAzureCosmosDBSerilog.Sinks.AzureCosmosDB
NuGet Version
Azure CosmosDBalternativeAzCosmosDBSerilog.Sinks.AzCosmosDB
NuGet Version
Azure Data ExplorerAzureDataExplorerSerilog.Sinks.AzureDataExplorer
NuGet Version
Azure DocumentDBAzureDocumentDBSerilog.Sinks.AzureDocumentDB
NuGet Version
Azure Event GridEventGridSerilog.Sinks.EventGrid
NuGet Version
Azure Event HubsAzureEventHubSerilog.Sinks.AzureEventHub
NuGet Version
Azure Queue StorageAzureQueueStorageSerilog.Sinks.AzureQueueStoragev2
NuGet Version
Azure Table StorageAzureTableStorageSerilog.Sinks.AzureTableStorage
NuGet Version
Azure Web Jobs*TraceWriterSerilog.Sinks.AzureWebJobsTraceWriter
NuGet Version
CouchBaseCouchbaseSerilog.Sinks.Couchbase
NuGet Version
CouchDBCouchDBSerilog.Sinks.CouchDB
NuGet Version
ConsoleConsoleSerilog.Sinks.Console
NuGet Version
Colored ConsoleColoredConsoleSerilog.Sinks.ColoredConsole
NuGet Version
DataDogDatadogSerilog.Sinks.DataDog
NuGet Version
DataDog LogsDatadogLogsSerilog.Sinks.Datadog.Logs
NuGet Version
DebugDebugSerilog.Sinks.Debug
NuGet Version
DynatraceDynatraceSerilog.Sinks.Dynatrace
NuGet Version
ElasticsearchElasticsearchSerilog.Sinks.Elasticsearch
NuGet Version
elmah.ioElmahIoSerilog.Sinks.ElmahIo
NuGet Version
EmailEmailSerilog.Sinks.Email
NuGet Version
Email PickUpEmailPickupSerilog.Sinks.EmailPickup
NuGet Version
Excel-DNAExcelDnaLogDisplaySerilog.Sinks.ExcelDnaLogDisplay
NuGet Version
ExceptionlessExceptionlessSerilog.Sinks.Exceptionless
NuGet Version
FileFileSerilog.Sinks.File
NuGet Version
FluentDFluentd
GlimpseGlimpseSerilog.Sinks.Glimpse
NuGet Version
Google Cloud PubSubGoogleCloudPubSubSerilog.Sinks.GoogleCloudPubSub
NuGet Version
Google Cloud Stack DriverGoogleCloudLoggingSerilog.Sinks.GoogleCloudLogging
NuGet Version
GrayLogGraylogSerilog.Sinks.Graylog
NuGet Version
HumioHumioSerilog.Sinks.Humio
NuGet Version
HTTPHttpSerilog.Sinks.Http
NuGet Version
In-memory/assertionsInMemorySerilog.Sinks.InMemory
NuGet Version
LiteDBLiteDBSerilog.Sinks.LiteDB
NuGet Version
Literate ConsoleLiterateConsoleSerilog.Sinks.Literate
NuGet Version
Log4NetLog4NetSerilog.Sinks.Log4Net
NuGet Version
LogDNALogDNASerilog.Sinks.LogDNA
NuGet Version
LogEntriesLogEntriesSerilog.Sinks.LogEntries
NuGet Version
LogglyLogglySerilog.Sinks.Loggly
NuGet Version
Loggly (Bulk API)LogglySerilog.LogglyBulk
NuGet Version
LogifyLogifyAlertLogify.Alert.Serilog
NuGet Version
Logmatic.ioLogmaticSerilog.Sinks.Logmatic
NuGet Version
LoggrLoggrSerilog.Sinks.Loggr
NuGet Version
MariaDBMariaDBSerilog.Sinks.MariaDB
NuGet Version
MartenMartenSerilog.Sinks.Marten
NuGet Version
MEL ILoggerILoggerSerilog.Sinks.ILogger
NuGetVersion
Microsoft TeamsMicrosoftTeamsSerilog.Sinks.MicrosoftTeams
NuGet Version
Microsoft TeamsalternativeMicrosoftTeamsSerilog.Sinks.MicrosoftTeams.Alternative
NuGet Version
MongoDBMongoDBSerilog.Sinks.MongoDB
NuGet Version
NatsNatsSerilog.Sinks.Nats
NuGet Version
NewRelicNewRelic
NetworkTCP or UDPSerilog.Sinks.Network
NuGet Version
NLogNLogSerilog.Sinks.NLog
NuGet Version
NotepadNotepadSerilog.Sinks.Notepad
NuGet Version
ObservableObserversSerilog.Sinks.Observable
NuGet Version
OrientDBOrientDBSerilog.Sinks.OrientDB
NuGet Version
Period BatchingSerilog.Sinks.PeriodicBatching
NuGet Version
PostgreSQLPostgreSQLSerilog.Sinks.PostgreSQL
NuGet Version
PostgreSQLalternativePostgreSQLSerilog.Sinks.Postgresql.Alternative
NuGet Version
RabbitMQRabbitMQSerilog.Sinks.RabbitMQ
NuGet Version
RavenDBRavenDBSerilog.Sinks.RavenDB
NuGet Version
RayGunRaygunSerilog.Sinks.Raygun
NuGet Version
RethinkDBRethinkDBSerilog.Sinks.RethinkDB
NuGet Version
RichTextBox.WpfRichTextBoxSerilog.Sinks.RichTextBox.Wpf
NuGet Version
RollbarRollbarSerilog.Sinks.RollbarCom
NuGet Version
Rolling FileRollingFileSerilog.Sinks.RollingFile
NuGet Version
Rolling FilealternativeRollingFileAlternateSerilog.Sinks.RollingFileAlternate
NuGet Version
ScalyrScalyrSerilog.Sinks.Scalyr
NuGet Version
SentrySentrySerilog.Sinks.Sentry
NuGet Version
SeqSeqSerilog.Sinks.Seq
NuGet Version
SignalRSignalRSerilog.Sinks.SignalR
NuGet Version
SlackSlackSerilog.Sinks.SlackClient
NuGet Version
SQLiteSQLiteSerilog.Sinks.SQLite
NuGet Version
SplunkEventCollectorSerilog.Sinks.Splunk
NuGet Version
SQL ServerMSSqlServerSerilog.Sinks.MSSqlServer
NuGet Version
StackifyStackifySerilog.Sinks.Stackify
NuGet Version
Sumo LogicSumoLogicSerilog.Sinks.SumoLogic
NuGet Version
Sumo Logic (by Sumo Logic)SumoLogicSumoLogic.Logging.Serilog
NuGet Version
Syslog (RFC5424)SyslogSerilog.Sinks.SyslogServer
NuGet Version
Syslog (RFC5424RFC3164)UdpSyslogTcpSyslogLocalSyslogSerilog.Sinks.SyslogMessages
NuGet Version
TelegramTelegramSerilog.Sinks.Telegram
NuGet Version
TelegramalternativeTelegramSerilog.Sinks.Telegram.Alternative
NuGet Version
TestCorrelatorTestCorrelatorSerilog.Sinks.TestCorrelator
NuGet Version
Text WriterTextWriterSerilog.Sinks.TextWriter
NuGet Version
TraceTraceSerilog.Sinks.Trace
NuGet Version
UDPUdpSerilog.Sinks.UDP
NuGet Version
Unity3DUnity3DSerilog.Sinks.Unity3D
OpenUPM Version
Windows Event LogEventLogSerilog.Sinks.EventLog
NuGet Version
XamarinNSLog AndroidLogSerilog.Sinks.Xamarin
NuGet Version
XSocketsXSocketsSerilog.Sinks.XSockets
NuGet Version
YouTrackYouTrackSerilog.Sinks.YouTrack

Cheers,
Samitha

Sunday, May 26, 2024

Use case of .http files in Visual Studio

An API .http file a feature provided by Visual Studio 2022 for testing ASP.NET Core projects. This serves as a convenient way to send HTTP requests and view responses directly within the Visual Studio IDE.

Further more, the VS 2022 .http file editor allows you to define HTTP requests that you want to send to test API endpoints.

It comes with an easy way to specify the details of HTTP requests including

  • URL
  • HTTP method (GET, POST, PUT.,DELETE)
  • headers,
  • query parameters
  •  request body

After completion of the a request, Visual Studio IDE displays the response directly within the editor itself,  allowing an easy way to view the response status code, headers, and body.

To learn mor visit this link.


Cheers,

Samitha

Saturday, April 20, 2024

ASP.NET Web Applications with Content Security Policy


 Content Security Policy (CSP) can be used to protect any ASP.NET web application by identifying  

  • Cross-site Scripting (XSS) attacks
  • SQL or data injection attacks.
We can use the web.config to configure CSP and this article explains various directives used for CSP and use of it.

Cheers,

Samitha

Monday, April 8, 2024

.Net core 6 db migration error

 I got following error when trying to run the migrations on a .NET Core 6 Web API.

Unable to create an object of type 'MyDBContext'

After tarting out different approaches following  changes made migrations work.


1. MyDbContext 

  

 public class MyDbContext : DbContext, IMyDbContext

    {

        public MyDbContext()

        {

            

        }

        public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)

        {

            

       

        protected override void OnConfiguring(DbContextOptionsBuilder

 optionsBuilder)

        {

            optionsBuilder.UseSqlServer("Data Source=localhost;Initial Catalog = Library;Integrated Security=True;Trusted_Connection=True;TrustServerCertificate=True");

        }

//...more code


}

2. Program.cs

builder.Services.ConfigureLoggerService(); 

//more options

options.UseSqlServer(builder.Configuration.GetConnectionString

("DefaultConnection")));


Cheers,

Samitha