質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

720閲覧

Django:作成した画面上にログデータを表示したい

Ykkykk

総合スコア140

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/09/12 03:07

編集2019/09/12 04:27

Djangoで作成したウェブアプリケーション上でDjangoのログファイルを表示させたいです。
settings.pyで

LOGGING = { 'version': 1, 'disable_existing_loggers':False, 'formatters':{ 'production': { 'format': '%(asctime)s [%(levelname)s] %(process)d %(thread)d ' '%(pathname)s:%(lineno)d %(message)s' }, }, 'handlers':{ 'file': { 'level': 'DEBUG', 'class': 'logging.handlers.SysLogHandler', 'formatter': 'production', 'address': '/dev/log', 'facility': 'local0', }, }, 'loggers': { '': { 'handlers': ['file'], 'level': 'DEBUG', 'propagate': False, }, 'django': { 'handlers': ['file'], 'level': 'DEBUG', 'propagate': False, }, }, }

以上のようにSyslogを使用し、/var/log/projectName/ディレクトリ以下にログファイルを出力しています。
ここでのパーミッションは、

-rw-r----- 1 syslog adm

になっています。このadmにはsyslogユーザとログインユーザが含まれています。
ビューでは、

def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) file_name = self.kwargs['file_name'] path = f'/var/log/projectName/{file_name}' if 'gz' in file_name: with gzip.open(path, 'tr', 'utf_8') as fi: l = fi.readlines() context['file_text'] = l else: with open(path, 'r') as f: l = f.readlines() context['file_text'] = l return context

としているのですが、Permission Deniedになってしまいます。
そもそも読み込み権限がないのでファイルを開けないのかと思いますが、どのようにすればDjangoのウェブアプリ上でログファイルを表示させることができるでしょうか?
また、/va/log/projectName以下のログファイルのパーミッションに読み取り権限のみ付与するというのはセキュリティ等の観点から適当な対処法でしょうか?
何か良い方法をご存知の方がおりましたらご教示ください。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問