在Linux中为.net Core编写txt文件(Docker)

vecaoik1  于 12个月前  发布在  Docker
关注(0)|答案(2)|浏览(97)

我是Linux的新手,我的API是在.net core中创建的,并在Docker中运行。我创建的系统将编写/创建一个txt文件,该文件将输入API中记录的所有错误。我编写的代码如下

public class WriteLogs
{

    public void ErrorLogFile(string traceNo, string errorMsg)
    {
        DirectoryInfo dir = new DirectoryInfo(Startup.errorPath);
        if (!dir.Exists)
        {
            dir.Create();
        }

        using (StreamWriter swLog = File.AppendText(Startup.errorPath + Startup.errorFileName + DateTime.Now.ToString("MMddyyyy") + ".txt"))
        {
            swLog.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " - Trace Number : " + traceNo + "   " + errorMsg + "\n");
        }
    }
}

字符串
我的startup中的值位于我的appSettings.json文件中:

"ErrorPath": "C:\\BP\\", "ErrorFileName": "BP-ParamLogs_",


这是在Windows环境下工作,但当我将我的程序转移到Linux并将ErrorPath更改为:

"ErrorPath": "/home/Logs/",


文件没有创建。
我的问题是,我的语法在Linux中是否可以写txt文件,或者我的路径是错误的?

7vux5j2d

7vux5j2d1#

要回答有关语法的具体问题,. \home\Logs\应该是/home/Logs/,因为Linux使用正斜杠作为路径分隔符。
你的程序可能没有/home/目录的写权限,我个人试过一个类似的程序,在创建日志目录的时候遇到了System.UnauthorizedAccessException
尝试使用dotnet run从终端运行程序,以查看可能出现的异常。

ubof19bj

ubof19bj2#

我只是通过使用命令解决了这个问题:
第一个月
从第一个目录。执行它后。它在docker目录中。

相关问题