Thêm và cấu hình các services (tiếp tục)
Trong code trên chúng ta cấu hình một service tùy chọn cho middleware logging HTTP bằng cách sử dụng dòng
builder.Services.AddHttpLogging(opts =>
opts.LoggingFields = HttpLoggingFields.RequestProperties);
Gọi AddHttpLogging() thêm các services cần thiết cho middleware logging HTTP vào IoC container và phù hợp theo
yêu cầu các tùy chọn sử dụng bởi middleware cho cái gì hiển thị, AddHttpLogging không bộc lộ trực tiếp trên đặc
tính Services; nó là một phương thức mở rộng cái cung cấp một cách thức thuận tiện để bao gói tất cả code yêu
cầu để thiết lập HTTP logging. Mô hình này của thiết lập bao gói đằng sau các phương thức mở rộng là phổ biến
trong ASP.NET Core.
Cũng như đăng kí các services liên quan đến khung, đặc tính Services là nơi bạn sẽ đăng kí bất cứ custom
services nào bạn có trong ứng dụng của bạn, như TaxCalculator ví dụ thảo luận ở trên. Đặc tính Services là
một IServiceCollection, cái là một danh sách mọi service được biết cái ứng dụng của bạn sẽ cần sử dụng. Bằng
cách thêm một service mới vào nó, bạn đảm bảo rằng bất cứ khi nào một class khai báo một dependency
trên service của bạn, IoC container sẽ biết làm cách nào cung cấp nó.
Cũng như cấu hình các services, WebApplicationBuilder là nơi bạn phù hợp hóa theo yêu cầu các quan tâm cắt
chéo khác, như logging. Trong code trên, tôi thể hiện làm cách nào bạn có thể thêm một cái lọc logging để
đảm bảo rằng các logs được khởi tạo bởi HttpLoggingMiddleware được viết tới console:
builder.Logging.AddFilter(
“Microsoft.AspNetCore.HttpLogging”, LogLevel.Information);
Dòng này đảm bảo rằng các logs của Information cực mạnh hay lớn hơn được tạo trong Microsoft
.AspNetCore.HttpLogging namespace sẽ được bao gồm trong đầu ra log.
Chú ý Tôi thể hiện cấu hình các cái lọc log trong code ở đây cho thuận tiện, nhưng cái phải cách tiếp cận thông
minh cho cấu hình các cái lọc trong ASP.NET Core. Điển hình thì, bạn kiểm soát các mức nào được thể hiện bằng
cách thêm các giá trị vào appsettings.json thay vào, như thể hiện trong mã nguồn đi kèm học phần này. Bạn sẽ
học nhiều hơn về logging và lọc log trong các học phần sau.
Sau khi bạn gọi Build() trên thực thể WebApplicationBuilder, bạn không thể đăng kí nhiều hơn services hay thay
đổi cấu hình logging của bạn, services định nghĩa cho thực thể WebApplication được thiết lập thành đá tảng.
Bước tiếp theo là định nghĩa làm cách nào ứng dụng của bạn trả lời các yêu cầu HTTP.