docker나 기타 리눅스 서버로 서버를 실행하면 로그를 살펴보거나 기타 모니터링 하기 편리합니다.

하지만 iis에서 flask 서버를 서비스하면 기본적인 debug 로그도 살펴보기가 매우 어렵습니다.

 

anaconda3 환경에서 iis에 flask 서비스를 설정해둔 상태여서 기본적은 에러조차 로그로 파악하기가 어렵습니다

불친절한 IIS 서버

local 상에서 정상작동하는 서버인데 iis에서만 위와같은 500에러만 나오는 상태, 맨 윗줄부터 디버깅을 하다가 작성한 코드입니다.

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def check_packages():
    packages = [
        'flask', 'watchdog', 'pysftp', 'PIL', 'psycopg2', 'requests'
    ]

    package_status = {}
    for package_name in packages:
        try:
            __import__(package_name)
            package_status[package_name] = 'Installed'
        except ImportError:
            package_status[package_name] = 'Not Installed'

    return render_template('packages.html', package_status=package_status)

if __name__ == '__main__':
    app.run(debug=True)

 

templates/packages.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Package Status</title>
</head>
<body>
    <h1>Package Status</h1>
    <table border="1">
        <tr>
            <th>Package Name</th>
            <th>Status</th>
        </tr>
        {% for package_name, status in package_status.items() %}
        <tr>
            <td>{{ package_name }}</td>
            <td>{{ status }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

 

+ Recent posts