Implement logging options in mystery.py (#73)
Required for using the multimystery.py from the doors branch without modifications.
This commit is contained in:
parent
5d33b4b164
commit
b90484acb7
31
Mystery.py
31
Mystery.py
|
@ -36,6 +36,8 @@ def main():
|
||||||
parser.add_argument('--outputpath')
|
parser.add_argument('--outputpath')
|
||||||
parser.add_argument('--race', action='store_true')
|
parser.add_argument('--race', action='store_true')
|
||||||
parser.add_argument('--meta', default=None)
|
parser.add_argument('--meta', default=None)
|
||||||
|
parser.add_argument('--log_output_path', help='Path to store output log')
|
||||||
|
parser.add_argument('--loglevel', default='info', help='Sets log level')
|
||||||
|
|
||||||
for player in range(1, multiargs.multi + 1):
|
for player in range(1, multiargs.multi + 1):
|
||||||
parser.add_argument(f'--p{player}', help=argparse.SUPPRESS)
|
parser.add_argument(f'--p{player}', help=argparse.SUPPRESS)
|
||||||
|
@ -87,8 +89,35 @@ def main():
|
||||||
erargs.teams = args.teams
|
erargs.teams = args.teams
|
||||||
|
|
||||||
# set up logger
|
# set up logger
|
||||||
|
if args.loglevel:
|
||||||
|
erargs.loglevel = args.loglevel
|
||||||
loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[erargs.loglevel]
|
loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[erargs.loglevel]
|
||||||
logging.basicConfig(format='%(message)s', level=loglevel)
|
import sys
|
||||||
|
class LoggerWriter(object):
|
||||||
|
def __init__(self, writer):
|
||||||
|
self._writer = writer
|
||||||
|
self._msg = ''
|
||||||
|
|
||||||
|
def write(self, message):
|
||||||
|
self._msg = self._msg + message
|
||||||
|
while '\n' in self._msg:
|
||||||
|
pos = self._msg.find('\n')
|
||||||
|
self._writer(self._msg[:pos])
|
||||||
|
self._msg = self._msg[pos + 1:]
|
||||||
|
|
||||||
|
def flush(self):
|
||||||
|
if self._msg != '':
|
||||||
|
self._writer(self._msg)
|
||||||
|
self._msg = ''
|
||||||
|
|
||||||
|
if args.log_output_path:
|
||||||
|
log = logging.getLogger("stderr")
|
||||||
|
log.addHandler(logging.StreamHandler())
|
||||||
|
sys.stderr = LoggerWriter(log.error)
|
||||||
|
os.makedirs(args.log_output_path, exist_ok=True)
|
||||||
|
logging.basicConfig(format='%(message)s', level=loglevel, filename=os.path.join(args.log_output_path, f"{seed}.log"))
|
||||||
|
else:
|
||||||
|
logging.basicConfig(format='%(message)s', level=loglevel)
|
||||||
|
|
||||||
if args.rom:
|
if args.rom:
|
||||||
erargs.rom = args.rom
|
erargs.rom = args.rom
|
||||||
|
|
Loading…
Reference in New Issue