2017-07-18 36 views
1

我有一個Web應用程序,具有最小的日誌記錄功能。後端使用Falcon(在Python上)在Apache上運行。Python - 不同日誌應該在不同的文件中,但出現在同一個文件

每個請求具有下面的代碼

msg = 'user: {usr} running {req} {req_uri:<30} | from: {loc_ip}:{loc_port} '.format(
     usr=req.env['REMOTE_USER'], 
     req=req.env['REQUEST_METHOD'], 
     loc_ip=req.env['REMOTE_ADDR'], 
     loc_port=req.env['REMOTE_PORT'], 
     req_uri=req.env['REQUEST_URI']) 

    log_name = 'logs/{remote_ip}/{remote_ip}_{day}.log'.format(remote_ip=req.env['REMOTE_ADDR'], day=datetime.datetime.now().date().strftime('%d_%m_%Y')) 
    os.makedirs(os.path.dirname(log_name), exist_ok=True) 
    logging.basicConfig(filename=log_name, level=logging.DEBUG, format='[%(asctime)s] - %(levelname)s - [%(module)s:%(lineno)d] %(message)s', datefmt='%d/%m/%Y %H:%M:%S') 
    logging.info(msg) 

我從2個不同的IP地址(IPX和IPY)訪問應用 - 所以應該有下「日誌」,文件夾「IPX」和文件夾2夾'IPy',每個文件都有一個日誌文件。但是在我訪問網頁後,我看到2個文件夾,但是其中只有一個文件夾裏面有一個日誌文件(可以說是IPx文件夾中的IPx_day.log),但在查看了IPx_day.log文件後,我看到:

[TIME] - INFO - [FILE] user: user1 running GET /domain | from: IPy:PORTy 
// Other log statments.. 
[TIME] - INFO - [FILE] user: user2 running GET /domain | from: IPx:PORTx 

兩行都在文件文件中 - IPx_day.log

有沒有人知道爲什麼兩行都出現在同一個文件中?

謝謝。

回答

1

從你的文章,我已經明白是

  1. 您要創建2個不同的文件夾,並在各自的 目錄中的日誌文件。
  2. 您從IPx運行應用程序,並且您在IPx.log中看到日誌,但在IPy中運行應用程序時看到的日誌爲 ,IPy的日誌在IPx.log中。

如果這是正確的,你能不能請檢查是否

  1. 右鍵IP [remote_IP]被傳遞所有的時間?
  2. 打印IP和log_name,並檢查您獲得的IP和日誌目錄。

我想,路徑變化是必需的。除非你的基本路徑是[腳本的源]

相關問題