static void Main() { var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()). AddJsonFile("appsettings.json"); var appSettingsConfig = builder.Build(); using (var loggerFactory = new LoggerFactory()) { var config = new JobHostConfiguration { DashboardConnectionString = "", StorageConnectionString = appSettingsConfig.GetConnectionString("AzureWebJobsStorage") }; var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; config.LoggerFactory = loggerFactory.AddApplicationInsights(instrumentationKey, null).AddConsole(); config.UseDurableTask(new DurableTaskExtension { HubName = "UpdateSoftware", }); var host = new JobHost(config); host.RunAndBlock(); } }
private static void Main(string[] args) { using (var loggerFactory = new LoggerFactory()) { var config = new JobHostConfiguration { DashboardConnectionString = "", StorageConnectionString = ConfigurationManager.AppSettings["AzureWebJobsStorage"] }; var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; config.LoggerFactory = loggerFactory.AddApplicationInsights(instrumentationKey, null).AddConsole(); config.UseDurableTask(new DurableTaskExtension { HubName = "UpdateSoftware" }); var host = new JobHost(config); host.RunAndBlock(); } }
/// <summary> /// This is the entry point of the service host process. /// </summary> private static void Main() { try { // The call initializes TelemetryConfiguration that will create and Intialize modules. TelemetryConfiguration configuration = TelemetryConfiguration.Active; // LoggerFactory registration in container LoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddApplicationInsights(() => new TelemetryClient(), LogLevel.Trace); LoggingContext.Initialize(loggerFactory); // The ServiceManifest.XML file defines one or more service type names. // Registering a service maps a service type name to a .NET type. // When Service Fabric creates an instance of this service type, // an instance of the class is created in this host process. ServiceRuntime.RegisterServiceAsync( "Adapters.ServiceBusDependencyReceiverType", context => new ServiceBusDependencyReceiver(context)).GetAwaiter().GetResult(); ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(ServiceBusDependencyReceiver).Name); // Prevents this host process from terminating so services keep running. Thread.Sleep(Timeout.Infinite); } catch (Exception e) { ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString()); throw; } }
static void Main(string[] args) { //Program.LocalTest(); /* * Este código realiza los cambios siguientes: * Agrega un proveedor de registro de Application Insights con un filtrado predeterminado; * toda la información y los registros de nivel superior se enviarán ahora a la consola y a * Application Insights cuando la ejecución se realiza localmente. * Coloca el objeto LoggerFactory en un bloque using para asegurarse de que la salida del registro * se vacíe cuando se cierre el host. */ using (var loggerFactory = new LoggerFactory()) { var config = new JobHostConfiguration(); var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; //Install-Package System.Configuration.ConfigurationManager -version 4.4.1 config.DashboardConnectionString = ""; config.LoggerFactory = loggerFactory .AddApplicationInsights(instrumentationKey, null) .AddConsole(); var host = new JobHost(config); host.RunAndBlock(); } }
static void Main() { using (var loggerFactory = new LoggerFactory()) { var config = new JobHostConfiguration(); var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; config.DashboardConnectionString = ""; config.LoggerFactory = loggerFactory .AddApplicationInsights(instrumentationKey, null) .AddConsole(); var host = new JobHost(config); host.RunAndBlock(); } }
// Please set the following connection strings in app.config for this WebJob to run: // AzureWebJobsDashboard //I disabled this // and AzureWebJobsStorage //for saving console/logging output static void Main() { ServicePointManager.DefaultConnectionLimit = Int32.MaxValue; using (var loggerFactory = new LoggerFactory()) { var config = new JobHostConfiguration(); var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; config.DashboardConnectionString = ""; config.LoggerFactory = loggerFactory .AddApplicationInsights(instrumentationKey, null) .AddConsole(); var host = new JobHost(config); host.Call(typeof(Functions).GetMethod("ProcessMethod")); //thread blocked in here- if it falls over want azure to report failure/ restart throw new AppDomainUnloadedException($"{typeof(Program).Assembly.GetName().Name} - WebJob has terminated"); //host.RunAndBlock(); //will block thread and wait for events, we don't not interested in events or schedules } }
// Please set the following connection strings in app.config for this WebJob to run: // AzureWebJobsDashboard and AzureWebJobsStorage static void Main() { var config = new JobHostConfiguration(); if (config.IsDevelopment) { config.UseDevelopmentSettings(); } var loggerFactory = new LoggerFactory(); var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; config.DashboardConnectionString = ""; config.LoggerFactory = loggerFactory .AddApplicationInsights(instrumentationKey, null) .AddConsole(); var host = new JobHost(config); // The following code ensures that the WebJob will be running continuously host.RunAndBlock(); }
public static IContainer ConfigureContainer(HttpConfiguration httpConfig, ServiceContext serviceContext) { var containerBuilder = new ContainerBuilder(); // TelemetryClient should be used per request containerBuilder.RegisterType <TelemetryClient>().InstancePerLifetimeScope(); containerBuilder.RegisterType <ServiceFabricContextOwinMiddleware>(); containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly()); containerBuilder.RegisterInstance(serviceContext); var dependencyAddress = ConfigurationManager.AppSettings.GetRefValue <string>("DependencyAddress"); containerBuilder.Register((e) => ServiceFabricHelper.CreateServiceProxyWithCorrelation <IDependency>(dependencyAddress)) .As <IDependency>(); // register httpConfig itself in the container containerBuilder.RegisterInstance(httpConfig); // LoggerFactory registration in container var loggerFactory = new LoggerFactory(); containerBuilder.RegisterInstance(loggerFactory) .As <ILoggerFactory>(); IContainer container = containerBuilder.Build(); // LoggerFactory App Insights configuration loggerFactory.AddApplicationInsights(() => container.Resolve <TelemetryClient>(), LogLevel.Trace); LoggingContext.Initialize(loggerFactory); // set Web API Dependency Resolver httpConfig.DependencyResolver = new AutofacWebApiDependencyResolver(container); return(container); }
static void Main(string[] args) { var loggerFactory = new LoggerFactory(); var serviceCollection = new ServiceCollection() .AddSingleton <ILoggerFactory>(loggerFactory) .AddSingleton <IHostingEnvironment>(new HostingEnvironment() { ContentRootPath = Directory.GetCurrentDirectory() }) .AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions { DeveloperMode = true, InstrumentationKey = "your instrumentation key", }) .Configure <ApplicationInsightsLoggerOptions>(o => o.IncludeEventId = true); var serviceProvider = serviceCollection.BuildServiceProvider(); loggerFactory.AddApplicationInsights(serviceProvider, LogLevel.Trace); var logger = loggerFactory.CreateLogger("Sample logger"); logger.LogWarning("Sample {data} logged", 12345); }
static void Main(string[] args) { using (var loggerFactory = new LoggerFactory()) { var config = new JobHostConfiguration(); config.DashboardConnectionString = ""; var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"]; config.LoggerFactory = loggerFactory .AddApplicationInsights(instrumentationKey, null) .AddConsole(); config.UseTimers(); config.UseDurableTask(new DurableTaskExtension { HubName = "MyTaskHub", }); var host = new JobHost(config); host.RunAndBlock(); } }
private static void Main(string[] args) { var channel = new Microsoft.ApplicationInsights.Channel.InMemoryChannel(); //https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/asp-net-core //TODO: https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/ilogger Console.WriteLine("Start App."); string basePath = Directory.GetCurrentDirectory(); string environmentName = Environment.GetEnvironmentVariable(Constants.Environment.AspNetCoreEnvironment); IConfigurationBuilder configurationBuilder = new ConfigurationBuilder() .SetBasePath(basePath) .AddJsonFile("appsettings.json", false, true) //optional: trueは存在していなくても構わない。 .AddJsonFile($"appsettings.{environmentName}.json", true, true) .AddEnvironmentVariables(); IConfigurationRoot config = configurationBuilder.Build(); string keyVaultName = config[Constants.Configuration.KeyName.KeyVaultName]; Console.WriteLine($"keyVaultName: {keyVaultName}"); if (!string.IsNullOrEmpty(keyVaultName)) { string keyVaultUrl = $"https://{keyVaultName}.vault.azure.net/"; if (environmentName == Constants.Environment.Name.Development) { config = configurationBuilder.AddAzureKeyVault( keyVaultUrl, config[Constants.Configuration.KeyName.AzureADApplicationId], config[Constants.Configuration.KeyName.AzureADPassword]).Build(); } else { config = configurationBuilder.AddAzureKeyVault(keyVaultUrl).Build(); } } string instrumentationKey = config["ApplicationInsights:InstrumentationKey"]; IServiceCollection services = new ServiceCollection(); services.Configure <TelemetryConfiguration>(conf => { conf.TelemetryChannel = channel; }); TelemetryClient telemetryClient = GetApplicationInsightsTelemetryClient(instrumentationKey); var factory = new LoggerFactory(); ILogger logger = factory.CreateLogger("ConsoleAppWebJob"); services.AddSingleton <IExecuteService, ExecuteService>() .AddSingleton <IConfiguration>(config) .AddSingleton(logger) .AddSingleton(telemetryClient); // Flushしなくても出るので、telemetry clientを渡す必要はなし services.AddLogging(builder => { builder.AddConfiguration(config.GetSection("Logging")); builder.AddFilter <ApplicationInsightsLoggerProvider>("ConsoleAppWebJob", LogLevel.Trace); builder.AddApplicationInsights(instrumentationKey); builder.AddConsole(); }); string keyVaultSqlDatabaseUserId = config[Constants.Configuration.KeyVault.Secret.SqlDatabaseUserId]; string keyVaultSqlDatabasePassword = config[Constants.Configuration.KeyVault.Secret.SqlDatabasePassword]; string connectionString = StartupConfig.ConnectionString.GetApplicationDbContextConnectionString( keyVaultSqlDatabaseUserId, keyVaultSqlDatabasePassword, config.GetConnectionString(Constants.ConnectionString.Db.ApplicationDbContextName) ); //NOTE: BuildDependencyInjectionProvider Methodを呼ぶ前に書かないといけない services.AddDbContext <ApplicationDbContext> ( options => options.UseSqlServer( connectionString, b => b.MigrationsAssembly("Web.Api.Infrastructure") ) ); IServiceProvider serviceProvider = BuildDependencyInjectionProvider(config, services); //serviceProvider.GetService<ILogger>().LogInformation("aaaa"); //configure console logging factory.AddApplicationInsights(serviceProvider, LogLevel.Trace); //factory.AddConsole(); ExecuteServiceAsync(serviceProvider).GetAwaiter().GetResult(); channel.Flush(); //これがないとApplicationInsightsに出力されないみたい Console.WriteLine("End App."); }