diff --git a/dan/__init__.py b/dan/__init__.py
index b74e88890b314ce492612711659c84f01a5a3035..def772032d44c4b0a53b635ae11d814ab8ebbfc8 100644
--- a/dan/__init__.py
+++ b/dan/__init__.py
@@ -5,4 +5,3 @@ logging.basicConfig(
     level=logging.INFO,
     format="%(asctime)s %(levelname)s/%(name)s: %(message)s",
 )
-logger = logging.getLogger(__name__)
diff --git a/dan/datasets/analyze/statistics.py b/dan/datasets/analyze/statistics.py
index c5f62664bc6d53aa330f70efd0cea6e73a7dad8d..efdc0ef6b96accccb091acc01df26593ee08d596 100644
--- a/dan/datasets/analyze/statistics.py
+++ b/dan/datasets/analyze/statistics.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+import logging
 from collections import Counter, defaultdict
 from pathlib import Path
 from typing import Dict, List, Optional
@@ -8,7 +9,7 @@ import numpy as np
 from mdutils.mdutils import MdUtils
 from prettytable import MARKDOWN, PrettyTable
 
-from dan import logger
+logger = logging.getLogger(__name__)
 
 METRIC_COLUMN = "Metric"
 
diff --git a/dan/datasets/extract/extract.py b/dan/datasets/extract/extract.py
index c00bd6968a7d996a0856f6032bb12e0fc580acea..724b386e69f50d1f52b1841eb7e671c04ecabf08 100644
--- a/dan/datasets/extract/extract.py
+++ b/dan/datasets/extract/extract.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 
 import json
+import logging
 import pickle
 import random
 from collections import defaultdict
@@ -12,7 +13,6 @@ import numpy as np
 from tqdm import tqdm
 
 from arkindex_export import open_database
-from dan import logger
 from dan.datasets.extract.db import (
     Element,
     get_elements,
@@ -37,6 +37,7 @@ IMAGES_DIR = "images"  # Subpath to the images directory.
 
 SPLIT_NAMES = ["train", "val", "test"]
 IIIF_URL_SUFFIX = "/full/full/0/default.jpg"
+logger = logging.getLogger(__name__)
 
 
 class ArkindexExtractor:
diff --git a/dan/ocr/predict/attention.py b/dan/ocr/predict/attention.py
index 20b1adff8c98fef04539e5cada55125cd5e72ac6..f5d84a0b3e2ab8b589a9e58bc0599e6e90d1a431 100644
--- a/dan/ocr/predict/attention.py
+++ b/dan/ocr/predict/attention.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+import logging
 import re
 from typing import List, Tuple
 
@@ -8,7 +9,7 @@ import torch
 from PIL import Image
 from torchvision.transforms.functional import to_pil_image
 
-from dan import logger
+logger = logging.getLogger(__name__)
 
 
 def parse_delimiters(delimiters: List[str]) -> re.Pattern:
diff --git a/dan/ocr/predict/prediction.py b/dan/ocr/predict/prediction.py
index cdca2a90b6fafa499bac974e3c8c722cad78077e..84f94a886538dfa3086ad7d229e942b6913e6f0b 100644
--- a/dan/ocr/predict/prediction.py
+++ b/dan/ocr/predict/prediction.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 
 import json
+import logging
 import pickle
 import re
 from itertools import pairwise
@@ -11,7 +12,6 @@ import numpy as np
 import torch
 import yaml
 
-from dan import logger
 from dan.ocr.decoder import GlobalHTADecoder
 from dan.ocr.encoder import FCN_Encoder
 from dan.ocr.predict.attention import (
@@ -29,6 +29,8 @@ from dan.utils import (
     read_image,
 )
 
+logger = logging.getLogger(__name__)
+
 
 class DAN:
     """