Re: Unable to log to stdout for pgadmin4 in python3 - Mailing list pgadmin-support

From Glen Huang
Subject Re: Unable to log to stdout for pgadmin4 in python3
Date
Msg-id B3F1E0CB-54EE-476F-99DB-87B9B2ED6EDE@gmail.com
Whole thread Raw
In response to Re: Unable to log to stdout for pgadmin4 in python3  (Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>)
Responses Re: Unable to log to stdout for pgadmin4 in python3
List pgadmin-support
Thanks for offering the solution. I’ll try to apply it for now.

But ideally it could be fixed in pgadmin, since LOG_FILE is now ignored all together.

Should I submit a ticket to pgadmin's issue tracker? (does it have one?)

On 7 Sep 2017, at 12:34 PM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:

I don't think that's possible with FileHandler in python.

The workaround is to change the logging FileHandler to StreamHandler, If you have access to pgAdmin4 source code in docker then you can try replacing below line (File:  <YOUR_DOCKER_PATH>/pgadmin4/web/pgadmin/__init__.py),

fh = logging.FileHandler(config.LOG_FILE, encoding='utf-8')

with

fh = logging.StreamHandler(sys.stdout)

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

https://community.postgresrocks.net/

On Wed, Sep 6, 2017 at 8:30 PM, Glen Huang <heyhgl@gmail.com> wrote:
Hi,

I’m running pgadmin4 in docker, and I have set LOG_FILE = '/dev/stdout’ to log to stdout, but when running pgAdmin4.py, it fails with:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py", line 56, in <module>
    app = create_app()
  File "/usr/local/lib/python3.6/site-packages/pgadmin4/pgadmin/__init__.py", line 183, in create_app
    fh = logging.FileHandler(config.LOG_FILE, encoding='utf-8')
  File "/usr/local/lib/python3.6/logging/__init__.py", line 1030, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/local/lib/python3.6/logging/__init__.py", line 1059, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
OSError: [Errno 29] Invalid seek

I think it has something do with this:

https://bugs.python.org/issue27805

Is there any way to work around it so I can make pgadmin4 log to stdout?

Regards
Glen


pgadmin-support by date:

Previous
From: Murtuza Zabuawala
Date:
Subject: Re: Unable to log to stdout for pgadmin4 in python3
Next
From: Murtuza Zabuawala
Date:
Subject: Re: Unicode "\uFEFF" getting copied from pgadmin 1.6 SQL window