Merge pull request 'oglog' (#27) from oglog into main
ogclone-engine/pipeline/tag This commit looks good
Details
ogclone-engine/pipeline/tag This commit looks good
Details
Reviewed-on: #27pull/28/head 0.5.0
commit
e885302256
|
@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.5.0] - 2025-04-15
|
||||
|
||||
### Changed
|
||||
|
||||
- Log to /var/log/clone-engine.log and clone-engine.json.log
|
||||
|
||||
## [0.4.1] - 2025-04-10
|
||||
|
||||
### Fixed
|
||||
|
|
|
@ -3,6 +3,7 @@ import datetime
|
|||
from zoneinfo import ZoneInfo
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
import shutil
|
||||
import inspect
|
||||
import glob
|
||||
|
@ -20,6 +21,7 @@ import StringLib
|
|||
|
||||
def _logtype2logfile (t):
|
||||
if 'log' == t.lower(): return ogGlobals.OGLOGFILE
|
||||
if 'jsonlog' == t.lower(): return ogGlobals.OGJSONLOGFILE
|
||||
elif 'command' == t.lower(): return ogGlobals.OGLOGCOMMAND
|
||||
elif 'session' == t.lower(): return ogGlobals.OGLOGSESSION
|
||||
else: raise Exception (f'unknown log type ({t})')
|
||||
|
@ -35,24 +37,40 @@ def ogEcho (logtypes, loglevel, msg):
|
|||
logfiles = ['/dev/stdout']
|
||||
if type (logtypes) is list:
|
||||
for l in logtypes:
|
||||
logfiles.append (_logtype2logfile (l))
|
||||
if 'log' == l:
|
||||
logfiles.append (_logtype2logfile ('log'))
|
||||
logfiles.append (_logtype2logfile ('jsonlog'))
|
||||
else:
|
||||
logfiles.append (_logtype2logfile (l))
|
||||
else: ## string
|
||||
logfiles.append (_logtype2logfile (logtypes))
|
||||
if 'log' == logtypes:
|
||||
logfiles.append (_logtype2logfile ('log'))
|
||||
logfiles.append (_logtype2logfile ('jsonlog'))
|
||||
else:
|
||||
logfiles.append (_logtype2logfile (logtypes))
|
||||
|
||||
if loglevel is None or 'help' == loglevel:
|
||||
if ogGlobals.DEBUG.lower() != "no":
|
||||
logfiles.append (ogGlobals.OGLOGFILE)
|
||||
logfiles.append (ogGlobals.OGJSONLOGFILE)
|
||||
for f in logfiles:
|
||||
with open (f, 'a') as fd:
|
||||
fd.write (msg + '\n')
|
||||
if ogGlobals.OGJSONLOGFILE == f:
|
||||
fd.write (json.dumps ({'message':msg}) + '\n')
|
||||
else:
|
||||
fd.write (msg + '\n')
|
||||
return
|
||||
|
||||
if 'info' == loglevel or 'warning' == loglevel or 'error' == loglevel:
|
||||
DATETIME = datetime.datetime.now(ZoneInfo(ogGlobals.TZ)).strftime("%F %T %Z")
|
||||
DATETIME = datetime.datetime.now (ZoneInfo (ogGlobals.TZ)).strftime ('%F %T %Z')
|
||||
DATETIME_json = datetime.datetime.now (ZoneInfo (ogGlobals.TZ)).strftime ('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
for f in logfiles:
|
||||
with open (f, 'a') as fd:
|
||||
fd.write (f"OpenGnsys {loglevel} {DATETIME} {msg}\n")
|
||||
if ogGlobals.OGJSONLOGFILE == f:
|
||||
fd.write (json.dumps ({'timestamp':DATETIME_json, 'severity':loglevel, 'message':msg}) + '\n')
|
||||
else:
|
||||
fd.write (f"OpenGnsys {loglevel} {DATETIME} {msg}\n")
|
||||
else:
|
||||
raise Exception (f'unknown loglevel ({loglevel})')
|
||||
|
||||
|
@ -75,10 +93,18 @@ def ogExecAndLog (logtypes, fun, *args, **kwargs):
|
|||
if type (logtypes) is list:
|
||||
for l in logtypes:
|
||||
logtypes = list (map (lambda x: x.lower(), logtypes))
|
||||
logfiles.append (_logtype2logfile (l))
|
||||
if 'log' == l:
|
||||
logfiles.append (_logtype2logfile ('log'))
|
||||
logfiles.append (_logtype2logfile ('jsonlog'))
|
||||
else:
|
||||
logfiles.append (_logtype2logfile (l))
|
||||
else: ## string
|
||||
logtypes = logtypes.lower()
|
||||
logfiles.append (_logtype2logfile (logtypes))
|
||||
if 'log' == logtypes:
|
||||
logfiles.append (_logtype2logfile ('log'))
|
||||
logfiles.append (_logtype2logfile ('jsonlog'))
|
||||
else:
|
||||
logfiles.append (_logtype2logfile (logtypes))
|
||||
|
||||
if not fun:
|
||||
ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, 'no function provided')
|
||||
|
@ -103,7 +129,6 @@ def ogExecAndLog (logtypes, fun, *args, **kwargs):
|
|||
# ## redirect stdout only
|
||||
# eval $COMMAND | tee -a $FILES
|
||||
|
||||
import time
|
||||
sout = serr = ''
|
||||
if 'command' in logtypes:
|
||||
os.unlink (ogGlobals.OGLOGCOMMAND)
|
||||
|
@ -121,14 +146,19 @@ def ogExecAndLog (logtypes, fun, *args, **kwargs):
|
|||
if sout or serr or ('True' != rc_str and 'False' != rc_str and 'None' != rc_str):
|
||||
for f in logfiles:
|
||||
with open (f, 'a') as fd:
|
||||
if sout: fd.write (f'{sout}\n')
|
||||
if serr: fd.write (f'{serr}\n')
|
||||
if rc_str: fd.write (f'{rc_str}\n')
|
||||
#fd.write (f"ogExecAndLog: {fun.__name__} rc:\n{rc_str}\n")
|
||||
#if sout: fd.write (f"ogExecAndLog: {fun.__name__} stdout:\n{sout}\n")
|
||||
#else: fd.write (f"ogExecAndLog: {fun.__name__} stdout: (none)\n")
|
||||
#if serr: fd.write (f"ogExecAndLog: {fun.__name__} stderr:\n{serr}\n")
|
||||
#else: fd.write (f"ogExecAndLog: {fun.__name__} stderr: (none)\n")
|
||||
if ogGlobals.OGJSONLOGFILE == f:
|
||||
if sout: fd.write (json.dumps ({'message':sout}) + '\n')
|
||||
if serr: fd.write (json.dumps ({'message':serr}) + '\n')
|
||||
if rc_str: fd.write (json.dumps ({'message':rc_str}) + '\n')
|
||||
else:
|
||||
if sout: fd.write (f'{sout}\n')
|
||||
if serr: fd.write (f'{serr}\n')
|
||||
if rc_str: fd.write (f'{rc_str}\n')
|
||||
#fd.write (f"ogExecAndLog: {fun.__name__} rc:\n{rc_str}\n")
|
||||
#if sout: fd.write (f"ogExecAndLog: {fun.__name__} stdout:\n{sout}\n")
|
||||
#else: fd.write (f"ogExecAndLog: {fun.__name__} stdout: (none)\n")
|
||||
#if serr: fd.write (f"ogExecAndLog: {fun.__name__} stderr:\n{serr}\n")
|
||||
#else: fd.write (f"ogExecAndLog: {fun.__name__} stderr: (none)\n")
|
||||
|
||||
return rc
|
||||
|
||||
|
|
|
@ -88,8 +88,9 @@ OGPYFUNCS = os.path.join (OPENGNSYS, 'functions')
|
|||
OGSCRIPTS = os.path.join (OPENGNSYS, 'scripts')
|
||||
OGIMG = os.path.join (OPENGNSYS, 'images')
|
||||
OGCAC = os.path.join (OPENGNSYS, 'cache')
|
||||
OGLOG = os.path.join (OPENGNSYS, 'log')
|
||||
OGLOGFILE = f'{OGLOG}/{ip}.log'
|
||||
OGLOG = '/var/log'
|
||||
OGLOGFILE = f'{OGLOG}/clone-engine.log'
|
||||
OGJSONLOGFILE = f'{OGLOG}/clone-engine.json.log'
|
||||
DEBUG = 'yes'
|
||||
_path = os.environ['PATH'] + ':/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/opt/oglive/rootfs/opt/drbl/sbin'
|
||||
os.environ['PATH'] = ':'.join ([OGSCRIPTS, _path, OGAPI, OGBIN])
|
||||
|
|
Loading…
Reference in New Issue