我有一个使用Serilog作为日志框架的.net core应用程序,目前Serilog正在记录到文件中。我想将此文件暴露在容器外,并像其他文件一样简单地访问它。我尝试了卷和卷绑定,根据docker-compose参考:https://docs.docker.com/compose/compose-file/#volume-configuration-reference。此外,来自主机的目录是共享的。但是日志文件出现在特定目录的容器中,但是主机上的目录仍然为空。我可以使用DOCKER COPY命令手动复制此文件。是否有任何方法使该文件在主机上的我的卷目录中同步?或者我应该采用其他额外的方法(例如ELK)来实现我的目标?这是我的docker-compose文件。前端部分现在因测试而被注释掉了。
当我打开终端并进入app/logs目录时,我可以看到名为logs.txt的文件,其中包含当前应用程序的日志。
version: '3.7'
services:
backend:
build: './backend'
ports:
- "80:80"
networks:
- gateway
environment:
- Logger:FilePath=//logs//logs.txt
- Database:Name=Data Source = ./database.db
volumes:
- type: bind
source: /Users/grzegorz/Desktop/logs
target: /app/logs/
#frontend:
# build: './frontend'
# depends_on:
# - backend
# ports:
# - "4200:4200"
# networks:
# - gateway
networks:
gateway: {}
当我打开终端并进入app/logs目录时,我可以看到名为logs.txt的文件,其中包含当前应用程序的日志。