Το τρίτο χρησιμοποιεί ConfigureServices
η οποία είναι μια δημόσια μέθοδος στο WebHostBuilder
. Και το πρώτο χρησιμοποιεί ConfigureLogging
που είναι ένα από τα IHostBuilder
μέθοδος επέκτασης στο HostingHostBuilderExtensions
.
Και οι δύο καλούν το IServiceCollection
μέθοδος επέκτασης AddLogging
στο LoggingServiceCollectionExtensions
κάτω από το Microsoft.Extensions.Logging
πακέτο. Το AddLogging
μέθοδος προσπαθήστε πρώτα να προσθέσετε δύο singleton ILoggerFactory
και ILogger<>
και ένα αναρίθμητο LoggerFilterOptions
. Στη συνέχεια, κάντε την ενέργεια για την καταγραφή (ILoggingBuilder
) που τελικά καλεί το AddProvider
μέθοδος προσθήκης των παρόχων αρχείων καταγραφής που εφαρμόζονται από αυτούς τους παρόχους (Κονσόλα, Azure) και κλήσεις SetMinimumLevel
για να προσθέσετε LoggerFilterOptions
Η δεύτερη μέθοδος προσθέτει απευθείας τους παρόχους αρχείων καταγραφής στο LoggerFactory
. Και αυτοί οι πάροχοι καλούνται στο LoggerFactory
όταν καλούνται μέθοδοι καταγραφής.
Όσον αφορά τις παραγγελίες, η δεύτερη και η τρίτη μέθοδος καλούνται με WebHostBuilder
's UseStartup<TStartup>
μέθοδος.
Στο ASP.NET Core 3.x, το πρώτο παράδειγμα είναι τώρα η εγκεκριμένη επιλογή. Όπως εξηγείται από την τεκμηρίωση
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Μια άλλη αλλαγή είναι ότι η εγγραφή αρχείων καταγραφής πριν από την ολοκλήρωση της ρύθμισης του κοντέινερ DI στη μέθοδο Startup.ConfigureServices δεν υποστηρίζεται πλέον:
- Δεν υποστηρίζεται η εισαγωγή καταγραφικού στον κατασκευαστή εκκίνησης.
- Η ένεση του καταγραφικού στην υπογραφή της μεθόδου Startup.ConfigureServices δεν υποστηρίζεται
Η καταγραφή κατά την κατασκευή του κεντρικού υπολογιστή δεν υποστηρίζεται επίσης (καθώς το κοντέινερ DI δεν έχει ακόμη ρυθμιστεί), η τεκμηρίωση συμβουλεύει να δημιουργήσετε ένα ξεχωριστό καταγραφικό για αυτήν την περίπτωση.