Ejemplo n.º 1
0
    def write_shared_area(self):
        payload = json.dumps(self.data)

        # write payload len
        sharedarea_write32(self.id, 0, len(payload))

        # write payload
        sharedarea_write(self.id, 4, payload)
Ejemplo n.º 2
0
    def write_shared_area(self):
        payload = json.dumps(self.data)

        # write payload len
        sharedarea_write32(self.id, 0, len(payload))

        # write payload
        sharedarea_write(self.id, 4, payload)
Ejemplo n.º 3
0
def set_global_log_level(expire_timestamp):
    timer_ = expire_timestamp - int(time.time())
    time.sleep(int(timer_))
    try:
        default_log_level = uwsgi.sharedarea_read(0, 0, 3)
        global_level = int(default_log_level.decode('ascii'))
        uwsgi.sharedarea_write(0, 3, json.dumps(global_level))
    except NameError:
        pass
Ejemplo n.º 4
0
def application(e, sr):

    sr('200 Ok', [('Content-Type', 'text/html')])

    uwsgi.sharedarea_write(17, e['REQUEST_URI'])

    uwsgi.sharedarea_inclong(173)
    uwsgi.sharedarea_inclong(173, 17)

    yield uwsgi.sharedarea_read(17, len(e['REQUEST_URI']))
    yield "<br/>"
    yield str(uwsgi.sharedarea_readlong(173))
Ejemplo n.º 5
0
def level_runtime(request) -> Response:

    if request.method == 'GET':
        try:
            shared_area = uwsgi.sharedarea_read(0, 3, 3)
            level = int(shared_area.decode('utf-8'))
        except:
            level = logger.level
        context = {
            "level_number": 109 - level
        }
        response = jsonify(context)
        response.status_code = 200

    elif request.method == 'POST':
        if request.is_json and request.data:
            payload = request.get_json()
            if 'level_number' not in payload:
                raise InvalidUsage(status_code=412, message='level_number not found in payload')
            elif type(payload['level_number']) is not int or not 0 <= payload['level_number'] <= 9:
                raise InvalidUsage(status_code=412, message='level_number is not a number or not between 0 and 9')
            else:
                level = payload.get('level_number', 9)
                real_level = int(get_real_logger_level(int(level)))
                expire_hours = payload.get('expire_hours', 0)
                expire_timestamp = int(time.time()) + int(float(expire_hours) * 3600) if expire_hours else 0
                payload = {
                    "level_number": level,
                    "expire_hours": expire_hours
                }
                try:
                    if expire_hours == 0:
                        uwsgi.sharedarea_write(0, 0, json.dumps(real_level))
                    else:
                        timer_thread = threading.Thread(target=set_global_log_level, args=(expire_timestamp,),
                                                        name='Timer',
                                                        daemon=True)
                        timer_thread.start()
                    uwsgi.sharedarea_write(0, 3, json.dumps(real_level))
                except NameError:
                    logger.setLevel(real_level)

                response = jsonify(payload)
                response.status_code = 200

        else:
            raise InvalidUsage('No data or data format invalid.', status_code=422)
    else:
        raise InvalidUsage('The method is not allowed for the requested URL.', status_code=405)

    return response
Ejemplo n.º 6
0
 def setUp(self):
     uwsgi.sharedarea_write(0, 0, "\0" * 64)
Ejemplo n.º 7
0
def memorystuff(state):
    uwsgi.sharedarea_write(0, 0, state)
    return True
Ejemplo n.º 8
0
def setmemorystate(state):
    data = pickle.dumps(state)
    uwsgi.sharedarea_write(0, 0, data)
    return True
Ejemplo n.º 9
0
    def log_type(self, value: str):
        self._log_type = value

    def makeRecord(self, name, level, fn, lno, msg, args, exc_info,
                   func=None, extra=None, sinfo=None):
        fn = extra.pop('fn', fn)
        lno = extra.pop('lno', lno)
        func = extra.pop('func', func)
        return super().makeRecord(name, level, fn, lno, msg, args, exc_info, func, extra, sinfo)


log_level = get_real_logger_level(int(settings.config_log["level"]))
try:
    import uwsgi

    uwsgi.sharedarea_write(0, 0, json.dumps(log_level))
    uwsgi.sharedarea_write(0, 3, json.dumps(log_level))
except ModuleNotFoundError:
    pass

pl.setup_loglevel()
log_type = settings.config_log.get('format', 'json')
host_pub = settings.host_pub
logger_handler = pl.setup_logger_handler(settings.log_path, log_level, log_type, host_pub)
logging.setLoggerClass(LoggerBase)

logger = logging.getLogger(__name__)
logger.log_type = log_type
logger.addHandler(logger_handler)

LOG_TABLE = {
Ejemplo n.º 10
0
 def setUp(self):
     uwsgi.sharedarea_write(0, 0, '\0' * 64)