Use default python logger
This commit is contained in:
		
							parent
							
								
									571cfe4585
								
							
						
					
					
						commit
						24d86e7eab
					
				
					 7 changed files with 33 additions and 54 deletions
				
			
		|  | @ -1,4 +1,5 @@ | |||
| import sys | ||||
| import logging | ||||
| 
 | ||||
| from os.path import isdir | ||||
| from osdk import const, shell | ||||
|  | @ -9,19 +10,20 @@ import osdk.vt100 as vt100 | |||
| 
 | ||||
| 
 | ||||
| def main() -> int: | ||||
|     logging.basicConfig( | ||||
|         level=logging.INFO, | ||||
|         format=f"{vt100.CYAN}%(asctime)s{vt100.RESET} {vt100.YELLOW}%(levelname)s{vt100.RESET} %(name)s: %(message)s", | ||||
|         datefmt="%Y-%m-%d %H:%M:%S", | ||||
|     ) | ||||
|     a = parse(sys.argv[1:]) | ||||
| 
 | ||||
|     if not a.consumeOpt("verbose", False): | ||||
|         if not isdir(const.OSDK_DIR): | ||||
|             shell.mkdir(const.OSDK_DIR) | ||||
|         sys.stderr = open(f"{const.OSDK_DIR}/osdk.log", "w") | ||||
| 
 | ||||
|     try: | ||||
|         loadAll() | ||||
|         exec(a) | ||||
|         return 0 | ||||
|     except Exception as e: | ||||
|         print(f"{vt100.RED}{e}{vt100.RESET}") | ||||
|         logging.error(f"{vt100.RED}{e}{vt100.RESET}") | ||||
|         print() | ||||
| 
 | ||||
|         usage() | ||||
|  |  | |||
|  | @ -1,13 +1,13 @@ | |||
| import os | ||||
| import logging | ||||
| from typing import TextIO | ||||
| 
 | ||||
| from osdk.model import Props | ||||
| from osdk.ninja import Writer | ||||
| from osdk.logger import Logger | ||||
| from osdk.context import ComponentInstance, Context, contextFor | ||||
| from osdk import shell, rules | ||||
| 
 | ||||
| logger = Logger("builder") | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| 
 | ||||
| def gen(out: TextIO, context: Context): | ||||
|  |  | |||
|  | @ -2,13 +2,12 @@ from typing import cast, Protocol, Iterable | |||
| from itertools import chain | ||||
| from pathlib import Path | ||||
| import os | ||||
| 
 | ||||
| import logging | ||||
| 
 | ||||
| from osdk.model import ProjectManifest, TargetManifest, ComponentManifest, Props, Type, Tool, Tools | ||||
| from osdk.logger import Logger | ||||
| from osdk import const, shell, jexpr, utils, rules, mixins | ||||
| 
 | ||||
| logger = Logger("context") | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| 
 | ||||
| class IContext(Protocol): | ||||
|  | @ -238,7 +237,7 @@ def contextFor(targetSpec: str, props: Props = {}) -> Context: | |||
|     if targetSpec in context: | ||||
|         return context[targetSpec] | ||||
| 
 | ||||
|     logger.log(f"Loading context for '{targetSpec}'") | ||||
|     logger.info(f"Loading context for '{targetSpec}'") | ||||
| 
 | ||||
|     targetEls = targetSpec.split(":") | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,21 +0,0 @@ | |||
| import sys | ||||
| import osdk.vt100 as vt100 | ||||
| 
 | ||||
| 
 | ||||
| class Logger: | ||||
|     name: str | ||||
| 
 | ||||
|     def __init__(self, name: str): | ||||
|         self.name = name | ||||
| 
 | ||||
|     def log(self, message: str): | ||||
|         print( | ||||
|             f"{vt100.CYAN}[{self.name}]{vt100.RESET} {message}", file=sys.stderr) | ||||
| 
 | ||||
|     def warn(self, message: str): | ||||
|         print( | ||||
|             f"{vt100.YELLOW}[{self.name}]{vt100.RESET} {message}", file=sys.stderr) | ||||
| 
 | ||||
|     def error(self, message: str): | ||||
|         print( | ||||
|             f"{vt100.RED}[{self.name}]{vt100.RESET} {message}", file=sys.stderr) | ||||
|  | @ -1,12 +1,12 @@ | |||
| import os | ||||
| from enum import Enum | ||||
| from typing import Any | ||||
| import logging | ||||
| 
 | ||||
| from osdk.jexpr import Json | ||||
| from osdk.logger import Logger | ||||
| 
 | ||||
| 
 | ||||
| logger = Logger("model") | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| Props = dict[str, Any] | ||||
| 
 | ||||
|  | @ -259,13 +259,13 @@ class ComponentManifest(Manifest): | |||
|     def isEnabled(self, target: TargetManifest) -> tuple[bool, str]: | ||||
|         for k, v in self.enableIf.items(): | ||||
|             if not k in target.props: | ||||
|                 logger.log( | ||||
|                 logger.info( | ||||
|                     f"Component {self.id} disabled by missing {k} in target") | ||||
|                 return False, f"Missing props '{k}' in target" | ||||
| 
 | ||||
|             if not target.props[k] in v: | ||||
|                 vStrs = [f"'{str(x)}'" for x in v] | ||||
|                 logger.log( | ||||
|                 logger.info( | ||||
|                     f"Component {self.id} disabled by {k}={target.props[k]} not in {v}") | ||||
|                 return False, f"Props missmatch for '{k}': Got '{target.props[k]}' but expected {', '.join(vStrs)}" | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,14 +1,13 @@ | |||
| import os | ||||
| import logging | ||||
| 
 | ||||
| import importlib.util as importlib | ||||
| from osdk.logger import Logger | ||||
| from osdk.shell import readdir | ||||
| 
 | ||||
| logger = Logger("plugins") | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| def load(path: str): | ||||
|     logger.log(f"Loading plugin {path}") | ||||
|     logger.info(f"Loading plugin {path}") | ||||
|     spec = importlib.spec_from_file_location("plugin", path) | ||||
| 
 | ||||
|     if not spec or not spec.loader: | ||||
|  | @ -20,7 +19,7 @@ def load(path: str): | |||
| 
 | ||||
| 
 | ||||
| def loadAll(): | ||||
|     logger.log("Loading plugins...") | ||||
|     logger.info("Loading plugins...") | ||||
|     for files in readdir(os.path.join("meta", "plugins")): | ||||
|         if files.endswith(".py"): | ||||
|             plugin = load(os.path.join("meta", "plugins", files)) | ||||
|  |  | |||
|  | @ -8,11 +8,11 @@ import re | |||
| import shutil | ||||
| import fnmatch | ||||
| import platform | ||||
| import logging | ||||
| 
 | ||||
| from osdk.logger import Logger | ||||
| from osdk import const | ||||
| 
 | ||||
| logger = Logger("shell") | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| 
 | ||||
| class Uname: | ||||
|  | @ -45,7 +45,7 @@ def sha256sum(path: str) -> str: | |||
| 
 | ||||
| 
 | ||||
| def find(path: str | list[str], wildcards: list[str] = [], recusive: bool = True) -> list[str]: | ||||
|     logger.log(f"Looking for files in {path} matching {wildcards}") | ||||
|     logger.info(f"Looking for files in {path} matching {wildcards}") | ||||
| 
 | ||||
|     result: list[str] = [] | ||||
| 
 | ||||
|  | @ -81,7 +81,7 @@ def find(path: str | list[str], wildcards: list[str] = [], recusive: bool = True | |||
| 
 | ||||
| 
 | ||||
| def mkdir(path: str) -> str: | ||||
|     logger.log(f"Creating directory {path}") | ||||
|     logger.info(f"Creating directory {path}") | ||||
| 
 | ||||
|     try: | ||||
|         os.makedirs(path) | ||||
|  | @ -92,7 +92,7 @@ def mkdir(path: str) -> str: | |||
| 
 | ||||
| 
 | ||||
| def rmrf(path: str) -> bool: | ||||
|     logger.log(f"Removing directory {path}") | ||||
|     logger.info(f"Removing directory {path}") | ||||
| 
 | ||||
|     if not os.path.exists(path): | ||||
|         return False | ||||
|  | @ -111,7 +111,7 @@ def wget(url: str, path: str | None = None) -> str: | |||
|     if os.path.exists(path): | ||||
|         return path | ||||
| 
 | ||||
|     logger.log(f"Downloading {url} to {path}") | ||||
|     logger.info(f"Downloading {url} to {path}") | ||||
| 
 | ||||
|     r = requests.get(url, stream=True) | ||||
|     r.raise_for_status() | ||||
|  | @ -125,7 +125,7 @@ def wget(url: str, path: str | None = None) -> str: | |||
| 
 | ||||
| 
 | ||||
| def exec(*args: str): | ||||
|     logger.log(f"Executing {args}") | ||||
|     logger.info(f"Executing {args}") | ||||
| 
 | ||||
|     try: | ||||
|         proc = subprocess.run(args) | ||||
|  | @ -147,7 +147,7 @@ def exec(*args: str): | |||
| 
 | ||||
| 
 | ||||
| def popen(*args: str) -> str: | ||||
|     logger.log(f"Executing {args}") | ||||
|     logger.info(f"Executing {args}") | ||||
| 
 | ||||
|     try: | ||||
|         proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=sys.stderr) | ||||
|  | @ -165,7 +165,7 @@ def popen(*args: str) -> str: | |||
| 
 | ||||
| 
 | ||||
| def readdir(path: str) -> list[str]: | ||||
|     logger.log(f"Reading directory {path}") | ||||
|     logger.info(f"Reading directory {path}") | ||||
| 
 | ||||
|     try: | ||||
|         return os.listdir(path) | ||||
|  | @ -174,13 +174,13 @@ def readdir(path: str) -> list[str]: | |||
| 
 | ||||
| 
 | ||||
| def cp(src: str, dst: str): | ||||
|     logger.log(f"Copying {src} to {dst}") | ||||
|     logger.info(f"Copying {src} to {dst}") | ||||
| 
 | ||||
|     shutil.copy(src, dst) | ||||
| 
 | ||||
| 
 | ||||
| def cpTree(src: str, dst: str): | ||||
|     logger.log(f"Copying {src} to {dst}") | ||||
|     logger.info(f"Copying {src} to {dst}") | ||||
| 
 | ||||
|     shutil.copytree(src, dst, dirs_exist_ok=True) | ||||
| 
 | ||||
|  | @ -203,7 +203,7 @@ def latest(cmd: str) -> str: | |||
|     if cmd in LATEST_CACHE: | ||||
|         return LATEST_CACHE[cmd] | ||||
| 
 | ||||
|     logger.log(f"Finding latest version of {cmd}") | ||||
|     logger.info(f"Finding latest version of {cmd}") | ||||
| 
 | ||||
|     regex = re.compile(r"^" + re.escape(cmd) + r"(-.[0-9]+)?(\.exe)?$") | ||||
| 
 | ||||
|  | @ -220,7 +220,7 @@ def latest(cmd: str) -> str: | |||
|     versions.sort() | ||||
|     chosen = versions[-1] | ||||
| 
 | ||||
|     logger.log(f"Chosen {chosen} as latest version of {cmd}") | ||||
|     logger.info(f"Chosen {chosen} as latest version of {cmd}") | ||||
| 
 | ||||
|     LATEST_CACHE[cmd] = chosen | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue