Skip to content

[Bug]: dab start --verbose doesnt output verbose logs #2713

@sander1095

Description

@sander1095

What happened?

With a bog standard dab config, running dab start --verbose yields the following:

Information: Microsoft.DataApiBuilder 1.4.35
Information: Config not provided. Trying to get default config based on DAB_ENVIRONMENT...
Information: Environment variable DAB_ENVIRONMENT is (null)
Loading config file from C:\projects\Personal\data-api-builder-demo\combined\dab\dab-config.json.
Information: Loaded config file: dab-config.json
Information: Setting minimum LogLevel: Information.
Starting the runtime engine...
Loading config file from C:\projects\Personal\data-api-builder-demo\combined\dab\dab-config.json.
Monitoring config: dab-config.json for hot-reloading.
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[63]
      User profile is available. Using 'C:\Users\stenb\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
info: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      [Author] REST path: /api/Author
info: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      [Book] REST path: /api/Book
info: Azure.DataApiBuilder.Service.Startup[0]
      Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\projects\Personal\data-api-builder-demo\combined\dab

There aren't any verbose logs there!

However, when running dab start --LogLevel trace or --LogLevel debug, the output is a lot more verbose:

Information: Microsoft.DataApiBuilder 1.4.35
Information: Config not provided. Trying to get default config based on DAB_ENVIRONMENT...
Information: Environment variable DAB_ENVIRONMENT is (null)
Loading config file from C:\projects\Personal\data-api-builder-demo\combined\dab\dab-config.json.
Information: Loaded config file: dab-config.json
Information: Setting minimum LogLevel: Trace.
Starting the runtime engine...
Loading config file from C:\projects\Personal\data-api-builder-demo\combined\dab\dab-config.json.
Monitoring config: dab-config.json for hot-reloading.
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[63]
      User profile is available. Using 'C:\Users\stenb\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
info: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      [Author] REST path: /api/Author
info: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      [Book] REST path: /api/Book
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
       Executing query: SELECT STE.type_desc FROM sys.triggers ST inner join sys.trigger_events STE On ST.object_id = STE.object_id AND ST.parent_id = object_id(@param0 + '.' + @param1) WHERE ST.is_disabled = 0;
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
       Executing query: SELECT ifsc.COLUMN_NAME from sys.columns as sc INNER JOIN INFORMATION_SCHEMA.COLUMNS as ifsc ON (sc.is_computed = 1 or ifsc.DATA_TYPE = 'timestamp') AND sc.object_id = object_id(@param0+'.'+@param1) AND ifsc.TABLE_SCHEMA = @param0 AND ifsc.TABLE_NAME = @param1 AND ifsc.COLUMN_NAME = sc.name;
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
       Executing query: SELECT STE.type_desc FROM sys.triggers ST inner join sys.trigger_events STE On ST.object_id = STE.object_id AND ST.parent_id = object_id(@param0 + '.' + @param1) WHERE ST.is_disabled = 0;
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
       Executing query: SELECT ifsc.COLUMN_NAME from sys.columns as sc INNER JOIN INFORMATION_SCHEMA.COLUMNS as ifsc ON (sc.is_computed = 1 or ifsc.DATA_TYPE = 'timestamp') AND sc.object_id = object_id(@param0+'.'+@param1) AND ifsc.TABLE_SCHEMA = @param0 AND ifsc.TABLE_NAME = @param1 AND ifsc.COLUMN_NAME = sc.name;
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
       Executing query:
      SELECT
          ReferentialConstraints.CONSTRAINT_NAME [ForeignKeyDefinition],
          ReferencingColumnUsage.TABLE_SCHEMA
              [ReferencingSchemaName],
          ReferencingColumnUsage.TABLE_NAME [ReferencingSourceDefinition],
          ReferencingColumnUsage.COLUMN_NAME [ReferencingColumns],
          ReferencedColumnUsage.TABLE_SCHEMA
              [ReferencedSchemaName],
          ReferencedColumnUsage.TABLE_NAME [ReferencedSourceDefinition],
          ReferencedColumnUsage.COLUMN_NAME [ReferencedColumns]
      FROM
          INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS ReferentialConstraints
          INNER JOIN
          INFORMATION_SCHEMA.KEY_COLUMN_USAGE ReferencingColumnUsage
              ON ReferentialConstraints.CONSTRAINT_CATALOG = ReferencingColumnUsage.CONSTRAINT_CATALOG
              AND ReferentialConstraints.CONSTRAINT_SCHEMA = ReferencingColumnUsage.CONSTRAINT_SCHEMA
              AND ReferentialConstraints.CONSTRAINT_NAME = ReferencingColumnUsage.CONSTRAINT_NAME
          INNER JOIN
              INFORMATION_SCHEMA.KEY_COLUMN_USAGE ReferencedColumnUsage
              ON ReferentialConstraints.UNIQUE_CONSTRAINT_CATALOG = ReferencedColumnUsage.CONSTRAINT_CATALOG
              AND ReferentialConstraints.UNIQUE_CONSTRAINT_SCHEMA = ReferencedColumnUsage.CONSTRAINT_SCHEMA
              AND ReferentialConstraints.UNIQUE_CONSTRAINT_NAME = ReferencedColumnUsage.CONSTRAINT_NAME
              AND ReferencingColumnUsage.ORDINAL_POSITION = ReferencedColumnUsage.ORDINAL_POSITION
      WHERE
          ReferencingColumnUsage.TABLE_SCHEMA IN (@schemaName0)
          AND ReferencingColumnUsage.TABLE_NAME IN (@tableName0)
dbug: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      Logging primary key information for entity: Author.
dbug: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      Primary key column name: id
      Primary key mapped name: id
      Type: Int32
      IsNullable: False
      IsAutoGenerated: True
dbug: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      Logging primary key information for entity: Book.
dbug: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      Primary key column name: id
      Primary key mapped name: id
      Type: Int32
      IsNullable: False
      IsAutoGenerated: True
trce: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      Done inferring Sql database schema in 255ms.
dbug: Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator[0]
      Author: dbo.authors(id) is related to many Book: dbo.books(authorId).
info: Azure.DataApiBuilder.Service.Startup[0]
      Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\projects\Personal\data-api-builder-demo\combined\dab

This leads me to believe that --verbose is bugged, or at least not functional enough.

Bonus: Why is LogLevel in pascalcase?

PS C:\projects\Personal\data-api-builder-demo\combined\dab> dab start --help
Microsoft.DataApiBuilder 1.4.35+647f344af9fe5c1079b27c00d0e3d3d0f44cb777
© Microsoft Corporation. All rights reserved.

  --verbose              Specifies logging level as informational.

  --LogLevel             Specifies logging level as provided value. For possible values, see:
                         https://go.microsoft.com/fwlink/?linkid=2263106

  --no-https-redirect    Disables automatic https redirects.

  -c, --config           Path to config file. Defaults to 'dab-config.json' unless 'dab-config.<DAB_ENVIRONMENT>.json' exists, where
                         DAB_ENVIRONMENT is an environment variable.

  --help                 Display this help screen.

  --version              Display version information.

Version

Microsoft.DataApiBuilder 1.3.19+60acba09d9c16a0de2a0917a459ca385fe5ebbf5

What database are you using?

Azure SQL

What hosting model are you using?

Local (including CLI)

Which API approach are you accessing DAB through?

REST

Relevant log output


Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageissues to be triaged

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions