prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  basicConfig is called at the module level
  ## Expected Behavior 
  
  ```
  import feast
  logging.basicConfig(level=level, format=FORMAT)
  logging.error("msg")
  ```
  
  should print logging message according to `FORMAT`
  
  ## Current Behavior
  
  It uses the format defined in `feast` at the module level.
  
  ## Steps to reproduce
  
  Same as in "Expected Behavior"
  
  ### Specifications
  
  - Version: 0.18.1
  - Platform: Linux
  - Subsystem: -
  
  ## Possible Solution
  
  I see that `basicConfig` is called here: https://github.com/feast-dev/feast/blob/c9eda79c7b1169ef05a481a96f07960c014e88b9/sdk/python/feast/cli.py#L84 so it is possible that simply removing this call here is enough: https://github.com/feast-dev/feast/blob/0ca62970dd6bc33c00bd5d8b828752814d480588/sdk/python/feast/__init__.py#L30
  
  If there are any other entry points that need to set up logging, they should call the function, but the call in `__init__.py` must be removed.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `sdk/python/feast/__init__.py`
  Content:
  ```
  1 import logging
  2 
  3 from pkg_resources import DistributionNotFound, get_distribution
  4 
  5 from feast.infra.offline_stores.bigquery_source import BigQuerySource
  6 from feast.infra.offline_stores.file_source import FileSource
  7 from feast.infra.offline_stores.redshift_source import RedshiftSource
  8 from feast.infra.offline_stores.snowflake_source import SnowflakeSource
  9 
  10 from .batch_feature_view import BatchFeatureView
  11 from .data_source import (
  12     KafkaSource,
  13     KinesisSource,
  14     PushSource,
  15     RequestSource,
  16     SourceType,
  17 )
  18 from .entity import Entity
  19 from .feature import Feature
  20 from .feature_service import FeatureService
  21 from .feature_store import FeatureStore
  22 from .feature_view import FeatureView
  23 from .field import Field
  24 from .on_demand_feature_view import OnDemandFeatureView
  25 from .repo_config import RepoConfig
  26 from .request_feature_view import RequestFeatureView
  27 from .stream_feature_view import StreamFeatureView
  28 from .value_type import ValueType
  29 
  30 logging.basicConfig(
  31     format="%(asctime)s %(levelname)s:%(message)s",
  32     datefmt="%m/%d/%Y %I:%M:%S %p",
  33     level=logging.INFO,
  34 )
  35 
  36 try:
  37     __version__ = get_distribution(__name__).version
  38 except DistributionNotFound:
  39     # package is not installed
  40     pass
  41 
  42 __all__ = [
  43     "BatchFeatureView",
  44     "Entity",
  45     "KafkaSource",
  46     "KinesisSource",
  47     "Feature",
  48     "Field",
  49     "FeatureService",
  50     "FeatureStore",
  51     "FeatureView",
  52     "OnDemandFeatureView",
  53     "RepoConfig",
  54     "SourceType",
  55     "StreamFeatureView",
  56     "ValueType",
  57     "BigQuerySource",
  58     "FileSource",
  59     "RedshiftSource",
  60     "RequestFeatureView",
  61     "SnowflakeSource",
  62     "PushSource",
  63     "RequestSource",
  64 ]
  65
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/sdk/python/feast/__init__.py b/sdk/python/feast/__init__.py
  --- a/sdk/python/feast/__init__.py
  +++ b/sdk/python/feast/__init__.py
  @@ -1,5 +1,3 @@
  -import logging
  -
   from pkg_resources import DistributionNotFound, get_distribution
   
   from feast.infra.offline_stores.bigquery_source import BigQuerySource
  @@ -27,12 +25,6 @@
   from .stream_feature_view import StreamFeatureView
   from .value_type import ValueType
   
  -logging.basicConfig(
  -    format="%(asctime)s %(levelname)s:%(message)s",
  -    datefmt="%m/%d/%Y %I:%M:%S %p",
  -    level=logging.INFO,
  -)
  -
   try:
       __version__ = get_distribution(__name__).version
   except DistributionNotFound:
  
verification_info: {"golden_diff": "diff --git a/sdk/python/feast/__init__.py b/sdk/python/feast/__init__.py\n--- a/sdk/python/feast/__init__.py\n+++ b/sdk/python/feast/__init__.py\n@@ -1,5 +1,3 @@\n-import logging\n-\n from pkg_resources import DistributionNotFound, get_distribution\n \n from feast.infra.offline_stores.bigquery_source import BigQuerySource\n@@ -27,12 +25,6 @@\n from .stream_feature_view import StreamFeatureView\n from .value_type import ValueType\n \n-logging.basicConfig(\n-    format=\"%(asctime)s %(levelname)s:%(message)s\",\n-    datefmt=\"%m/%d/%Y %I:%M:%S %p\",\n-    level=logging.INFO,\n-)\n-\n try:\n     __version__ = get_distribution(__name__).version\n except DistributionNotFound:\n", "issue": "basicConfig is called at the module level\n## Expected Behavior \r\n\r\n```\r\nimport feast\r\nlogging.basicConfig(level=level, format=FORMAT)\r\nlogging.error(\"msg\")\r\n```\r\n\r\nshould print logging message according to `FORMAT`\r\n\r\n## Current Behavior\r\n\r\nIt uses the format defined in `feast` at the module level.\r\n\r\n## Steps to reproduce\r\n\r\nSame as in \"Expected Behavior\"\r\n\r\n### Specifications\r\n\r\n- Version: 0.18.1\r\n- Platform: Linux\r\n- Subsystem: -\r\n\r\n## Possible Solution\r\n\r\nI see that `basicConfig` is called here: https://github.com/feast-dev/feast/blob/c9eda79c7b1169ef05a481a96f07960c014e88b9/sdk/python/feast/cli.py#L84 so it is possible that simply removing this call here is enough: https://github.com/feast-dev/feast/blob/0ca62970dd6bc33c00bd5d8b828752814d480588/sdk/python/feast/__init__.py#L30\r\n\r\nIf there are any other entry points that need to set up logging, they should call the function, but the call in `__init__.py` must be removed.\n", "before_files": [{"content": "import logging\n\nfrom pkg_resources import DistributionNotFound, get_distribution\n\nfrom feast.infra.offline_stores.bigquery_source import BigQuerySource\nfrom feast.infra.offline_stores.file_source import FileSource\nfrom feast.infra.offline_stores.redshift_source import RedshiftSource\nfrom feast.infra.offline_stores.snowflake_source import SnowflakeSource\n\nfrom .batch_feature_view import BatchFeatureView\nfrom .data_source import (\n    KafkaSource,\n    KinesisSource,\n    PushSource,\n    RequestSource,\n    SourceType,\n)\nfrom .entity import Entity\nfrom .feature import Feature\nfrom .feature_service import FeatureService\nfrom .feature_store import FeatureStore\nfrom .feature_view import FeatureView\nfrom .field import Field\nfrom .on_demand_feature_view import OnDemandFeatureView\nfrom .repo_config import RepoConfig\nfrom .request_feature_view import RequestFeatureView\nfrom .stream_feature_view import StreamFeatureView\nfrom .value_type import ValueType\n\nlogging.basicConfig(\n    format=\"%(asctime)s %(levelname)s:%(message)s\",\n    datefmt=\"%m/%d/%Y %I:%M:%S %p\",\n    level=logging.INFO,\n)\n\ntry:\n    __version__ = get_distribution(__name__).version\nexcept DistributionNotFound:\n    # package is not installed\n    pass\n\n__all__ = [\n    \"BatchFeatureView\",\n    \"Entity\",\n    \"KafkaSource\",\n    \"KinesisSource\",\n    \"Feature\",\n    \"Field\",\n    \"FeatureService\",\n    \"FeatureStore\",\n    \"FeatureView\",\n    \"OnDemandFeatureView\",\n    \"RepoConfig\",\n    \"SourceType\",\n    \"StreamFeatureView\",\n    \"ValueType\",\n    \"BigQuerySource\",\n    \"FileSource\",\n    \"RedshiftSource\",\n    \"RequestFeatureView\",\n    \"SnowflakeSource\",\n    \"PushSource\",\n    \"RequestSource\",\n]\n", "path": "sdk/python/feast/__init__.py"}], "after_files": [{"content": "from pkg_resources import DistributionNotFound, get_distribution\n\nfrom feast.infra.offline_stores.bigquery_source import BigQuerySource\nfrom feast.infra.offline_stores.file_source import FileSource\nfrom feast.infra.offline_stores.redshift_source import RedshiftSource\nfrom feast.infra.offline_stores.snowflake_source import SnowflakeSource\n\nfrom .batch_feature_view import BatchFeatureView\nfrom .data_source import (\n    KafkaSource,\n    KinesisSource,\n    PushSource,\n    RequestSource,\n    SourceType,\n)\nfrom .entity import Entity\nfrom .feature import Feature\nfrom .feature_service import FeatureService\nfrom .feature_store import FeatureStore\nfrom .feature_view import FeatureView\nfrom .field import Field\nfrom .on_demand_feature_view import OnDemandFeatureView\nfrom .repo_config import RepoConfig\nfrom .request_feature_view import RequestFeatureView\nfrom .stream_feature_view import StreamFeatureView\nfrom .value_type import ValueType\n\ntry:\n    __version__ = get_distribution(__name__).version\nexcept DistributionNotFound:\n    # package is not installed\n    pass\n\n__all__ = [\n    \"BatchFeatureView\",\n    \"Entity\",\n    \"KafkaSource\",\n    \"KinesisSource\",\n    \"Feature\",\n    \"Field\",\n    \"FeatureService\",\n    \"FeatureStore\",\n    \"FeatureView\",\n    \"OnDemandFeatureView\",\n    \"RepoConfig\",\n    \"SourceType\",\n    \"StreamFeatureView\",\n    \"ValueType\",\n    \"BigQuerySource\",\n    \"FileSource\",\n    \"RedshiftSource\",\n    \"RequestFeatureView\",\n    \"SnowflakeSource\",\n    \"PushSource\",\n    \"RequestSource\",\n]\n", "path": "sdk/python/feast/__init__.py"}]}