def test_d__byte(self): out = io.StringIO() log.logger.addHandler(StreamHandler(stream=out)) log.set_level(log.Level.DEBUG) log.d(b'message') self.assertEqual(out.getvalue(), "message\n")
def merge(directory: str, debug: bool): """ 引数に指定したディレクトリ内のファイルをマージし、日付でソートします。 \b マージしたファイルは、[ディレクトリ名 + .merged.log]というファイル名で出力されます。 utf-8でデコード出来ない行は上手くマージ出来ません。 """ # for debug if debug: log.set_level(log.Level.DEBUG) try: ret = mrg.Merge().exec(directory) except IOError as e: ret = False click.echo(e.args) except Exception as e: ret = False click.echo(e.args) # finished if ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
def test_set_level(self): out = io.StringIO() log.logger.addHandler(StreamHandler(stream=out)) log.set_level(log.Level.WARN) log.i("message") self.assertEqual(out.getvalue(), "") log.set_level(log.Level.INFO) log.i("message") self.assertEqual(out.getvalue(), "message\n")
def get(ctx: click.core.Context, filename: str, dir: str, to_usb: bool, convert: bool, merge: bool, debug: bool): """ 引数に指定したファイルを取得します。省略した場合は新たに取得します。 """ # for debug if debug: log.set_level(log.Level.DEBUG) p = __get_params(ctx) if to_usb: if convert or merge: log.w("USB出力時は--convert, --mergeオプションは無視されます.") p.remote_dist_dir = os.path.join(p.usb_dir, dir) else: p.local_dist_dir = os.path.join(os.getcwd(), dir) # execute command files = None ret = True try: if filename is None: files = remote.RemoteLogger(p).get_log(to_usb) else: files = remote.RemoteLogger(p).move_log(filename, to_usb) if convert and not to_usb and files is not None: cp = conv.ConvertParams() cp.script_path = p.convert_rule for f in files: cp.log_path = f ret, out_dir = conv.Converter(cp).exec() ret &= ret if merge and not (out_dir is None): ret &= mrg.Merge().exec(os.path.join(out_dir, p.merge_dir)) except IOError as e: ret = False click.echo(e.args) except Exception as e: ret = False click.echo(e.args) # finished if not files is None and ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
def ls(ctx: click.core.Context, debug: bool): """ Remoteに保存されたログファイルの一覧を取得します。 """ if debug: log.set_level(log.Level.DEBUG) else: log.set_level(log.Level.WARN) p = __get_params(ctx) try: for f in remote.RemoteLogger(p).list_log(): click.echo(f) except IOError as e: click.echo(e.args) except Exception as e: click.echo(e.args)
def convert(ctx: click.core.Context, tar_file: str, script_path: str, file: str, merge: bool, debug: bool): """ 指定されたtarファイルを展開し、変換ルールに従って変換します。 """ if debug: log.set_level(log.Level.DEBUG) if not script_path is None: s = script_path else: conf = __get_params(ctx) if (conf.convert_rule is not None) and (not os.path.exists(conf.convert_rule)): click.echo("convert_rule \"%s\" が存在しません。" % conf.convert_rule) ctx.exit(2) else: s = conf.convert_rule p = conv.ConvertParams() p.script_path = s p.log_path = tar_file p.file = file ret = None try: ret, out_dir = conv.Converter(p).exec() if merge and not (out_dir is None): ret = mrg.Merge().exec(os.path.join(out_dir, conf.merge_dir)) except IOError as e: click.echo(e.args) except Exception as e: click.echo(e.args) # finished if ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
def clear(ctx: click.core.Context, buffer: str, debug: bool): """ Remoteに保存されたログファイルをすべて削除します。 \b ※注意: 削除時の確認はしません。削除したファイルの復元はできません。 """ if debug: log.set_level(log.Level.DEBUG) else: log.set_level(log.Level.WARN) p = __get_params(ctx) try: remote.RemoteLogger(p).clear_log(buffer) except IOError as e: click.echo(e.args) except Exception as e: click.echo(e.args) click.echo("%s のログを削除しました。" % p.remote_log_dir)
def start(ctx: click.core.Context, test_number: str, debug: bool) -> object: """ コンソール操作ログを含む、ログの取得を開始します。 \b 試験番号毎のディレクトリを作成し、その中にログを保存します。 ログ取得を終了するには、 exit を2回入力してください。 """ # for debug if debug: log.set_level(log.Level.DEBUG) # check parameters. if test_number is None: return click.echo("Error: test-number を設定してください。") p = __get_params(ctx) # execute command click.echo("ログ取得を開始します。終了するには exit を2回入力してください。") logger = auto.AutoLogger(p, test_number) ret = False try: ret = logger.start() except IOError as e: ret = False click.echo(e.args) except Exception as e: ret = False click.echo(e.args) # finished if ret: click.echo("正常に終了しました。") else: click.echo("失敗しました。")
from flask import Flask from flask import request from flask import jsonify from flask_cors import CORS from invalid_usage import input_check, InvalidUsage from work_mailer import WorkMailer from format_mailer import FormatMailer from simplebot import SimpleBot from logger import log from flask import render_template from settings import Settings app = Flask(__name__, static_url_path="/static") CORS(app) log.set_level(log.DEBUG) log(log.DEBUG, "start server") @app.errorhandler(InvalidUsage) def handle_invalid_usage(error): response = jsonify(error.to_dict()) response.status_code = error.status_code return response @app.route("/") def index(): return render_template("index.html") @app.route("/send_message", methods=["POST"])
def test_exec__dir_not_exists(self): path = "tests/not_exists_dir" log.set_level(log.Level.DEBUG) ret = merge.Merge().exec(path) self.assertFalse(ret)