ป้องกัน.อข่ายนอกจากการทำปูมบันทึกต้องคอนโซล?

0

คำถาม

ฉันต้องติดตั้งเพื่อใช้งานการขึ้นแก่กันเรื่องการฉีดอยู่ในโปรแกรม และฉัการปรับแต่งบริการที่ตามมา

IConfiguration configuration = context.Configuration;

services.AddDbContext<ApplicationDbContext>(options =>
{
    options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});

services.ConfigureRailIncApi(configuration);

services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));

services.AddSingleton(configuration);
services.AddSingleton(Logger);

services.AddSingleton<Application>();
services.AddSingleton<ServiceManager>();

ทั้งหมดนี้ทำงานก็ได้ยกเว้นตอนนี้คนส่วนเฟรมเวิร์กคือการทำปูมบันทึกต้องคอนโซล,รวมทั้งเนื้อหาของค้นข้อมูลส่งมาจากฐานข้อมูลเหมือนกัน

บางที่ภายในการทำปูมบันทึกจะถูกเปิดใช้งานแต่ฉันไม่เห็นไหมฉันเคยเปิดใช้งานมัน

ยังไงฉันสามารถป้องกัน.อข่ายนอกจากการทำปูมบันทึกไปที่หน้าจอ?

ข้อควรทราบ: Logger เป็นตัวอย่างของตัวเองการทำปูมบันทึกเรียน ConsoleLogger. ชั้นเรียนนี้มันยังไม่ได้เตรียมกำ ILogger หรือใช้อย่างอื่นกเกิดขึ้นใช่ไหม มันเป็นเพียงการกำหนดชั้นเรียนนั่นยังปูมบันทึกต้องคอนโซลและแฟ้ม การทำปูมบันทึกจากวบันทึกตักำลังทำงานสบายดี และฉันยืนยันว่า.อข่ายนอกบันทึกของไม่ได้ถูกส่งไปเรียนคลาสนี้นะ

ปรับปรุง:

นี่คือรหัสของฉันนั่น configures เจ้าบ้านได้

public void Configure(string[] args, Action< HostBuilderContext, IServiceCollection> configureServices, Action<IHostBuilder> configureHost)
{
    IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);

    hostBuilder.ConfigureServices((context, services) =>
    {
        services.AddSingleton(this);
        configureServices(context, services);
    });

    configureHost(hostBuilder);

    AppHost = hostBuilder.Build();
}

และนี่คือรหัสที่จะเรียน

ApplicationServices appServices = new();

appServices.Configure(args, (context, services) =>
{
    IConfiguration configuration = context.Configuration;

    services.AddDbContext<ApplicationDbContext>(options =>
    {
        options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
    });

    services.ConfigureRailIncApi(configuration);

    services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));

    services.AddSingleton(configuration);
    services.AddSingleton(Logger);

    services.AddSingleton<Application>();
    services.AddSingleton<ServiceManager>();
},
builder =>
{

});
.net-6.0 .net-core c# ilogger
2021-11-23 19:36:35
1

คำตอบที่ดีที่สุด

1

ข้อค

คน CreateDefaultBuilder วิธีการ:
...
...
เพิ่มผู้ติดตามการทำปูมบันทึกผู้จัดทำ:

  • คอนโซล
  • การดีบั๊ก
  • EventSource
  • EventLog(เฉพาะตอนที่กำลังทำงานบนหน้าต่าง)

อ้างอิง ค่าปริยายสร้างการตั้งค่า

คุณจะต้องการจะลบในข้อบังคับค่าปริยายผู้จัดทำและเพิ่มเท่านั้นตัวเดียวกันกับที่คุณต้องการ

IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);

//...

hostBuilder.ConfigureLogging(logging => {
    logging.ClearProviders();

    //... add my providers here
});

//...

โปรดสังเกตว่าหากคุณต้องการจะหลีกเลี่ยงกันนามสกุลเพิ่มผู้จัดทำของตัวเองงั้นก็แสดงการทำปูมบันทึกการปรับแต่งสุดท้ายดังนั้นคุณแน่ใจเรื่องซึ่ง loggers อยู่เพิ่มเติม

2021-11-23 20:41:50

ใช่นี่คือสิ่งที่เกิดขึ้น ฉันไม่แน่ใจว่าทำไม ConfigureLogging คิดว่าค logging พารามิเตอร์เป็นประเภท HostBuilderContext แต่ฉันสามารถบังคับให้เป็น ILoggingBuilder. ขอบคุณสำหรับความช่วยเหลือ
Jonathan Wood

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่