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 FC04EB54-87C8-4E7E-A33B-CAB01BF17C3A@gmail.com
Whole thread Raw
In response to Re: Unable to log to stdout for pgadmin4 in python3  (Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>)
List pgadmin-support
That sounds reasonable.

Thanks.

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

This is not a bug with pgAdmin4 but anyways you can submit feature request to provide option to log only on stdout instead of file.

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

https://community.postgresrocks.net/

On Thu, Sep 7, 2017 at 10:12 AM, Glen Huang <heyhgl@gmail.com> wrote:
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: Glen Huang
Date:
Subject: Possible to add servers to pgadmin4 via CLI or config files?