Skip to content

Commit

Permalink
Merge pull request #24 from Disaxy/feature/formatters-in-files
Browse files Browse the repository at this point in the history
added file handler formatter
  • Loading branch information
daltonmatos authored Dec 7, 2022
2 parents d213e33 + be00f57 commit 385a863
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 16 deletions.
16 changes: 6 additions & 10 deletions aiologger/handlers/base.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,16 @@
import abc
import asyncio
import json
import sys
from asyncio import AbstractEventLoop
from typing import Optional, Union
from typing import Union

from aiologger import settings
from aiologger.filters import Filterer
from aiologger.formatters.base import Formatter
from aiologger.formatters.json import JsonFormatter
from aiologger.levels import LogLevel, get_level_name, check_level
from aiologger.levels import LogLevel, check_level, get_level_name
from aiologger.records import LogRecord


# Handler relies on any formatter
_default_formatter = Formatter()


class Handler(Filterer):
"""
Handler instances dispatch logging events to specific destinations.
Expand All @@ -27,14 +21,16 @@ class Handler(Filterer):
the 'raw' message as determined by record.message is logged.
"""

def __init__(self, level: LogLevel = LogLevel.NOTSET) -> None:
def __init__(
self, level: LogLevel = LogLevel.NOTSET, formatter: Formatter = None
) -> None:
"""
Initializes the instance - basically setting the formatter to None
and the filter list to empty.
"""
Filterer.__init__(self)
self._level = check_level(level)
self.formatter: Formatter = _default_formatter
self.formatter = Formatter() if formatter is None else formatter

@property
@abc.abstractmethod
Expand Down
19 changes: 13 additions & 6 deletions aiologger/handlers/files.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,11 @@
import os
import re
import time
from asyncio import AbstractEventLoop
from typing import Callable, List, Optional

import aiofiles
from aiofiles.threadpool import AsyncTextIOWrapper

from aiologger.formatters.base import Formatter
from aiologger.handlers.base import Handler
from aiologger.records import LogRecord
from aiologger.utils import classproperty, get_running_loop
Expand All @@ -24,9 +23,13 @@ class AsyncFileHandler(Handler):
terminator = "\n"

def __init__(
self, filename: str, mode: str = "a", encoding: str = None
self,
filename: str,
mode: str = "a",
encoding: str = None,
formatter: Formatter = None,
) -> None:
super().__init__()
super().__init__(formatter=formatter)
filename = os.fspath(filename)
self.absolute_file_path = os.path.abspath(filename)
self.mode = mode
Expand Down Expand Up @@ -91,8 +94,9 @@ def __init__(
encoding: str = None,
namer: Namer = None,
rotator: Rotator = None,
formatter: Formatter = None,
) -> None:
super().__init__(filename, mode, encoding)
super().__init__(filename, mode, encoding, formatter)
self.mode = mode
self.encoding = encoding
self.namer = namer
Expand Down Expand Up @@ -228,8 +232,11 @@ def __init__(
encoding: str = None,
utc: bool = False,
at_time: datetime.time = None,
formatter: Formatter = None,
) -> None:
super().__init__(filename=filename, mode="a", encoding=encoding)
super().__init__(
filename=filename, mode="a", encoding=encoding, formatter=formatter
)
self.when = when.upper()
self.backup_count = backup_count
self.utc = utc
Expand Down

0 comments on commit 385a863

Please sign in to comment.