Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中为.net内核编写txt文件(Docker)_Linux_Docker_Asp.net Core_Rhel_Streamwriter - Fatal编程技术网

在linux中为.net内核编写txt文件(Docker)

在linux中为.net内核编写txt文件(Docker),linux,docker,asp.net-core,rhel,streamwriter,Linux,Docker,Asp.net Core,Rhel,Streamwriter,我是Linux新手,我的API是在.NETCore中创建的,在Docker中运行。我创建的系统将写入/创建一个txt文件,该文件将输入API中记录的所有错误。我要写的代码是 `公共类写日志 { 我的启动中的值位于我的appSettings.json文件中: “错误路径”:“C:\\BP\\”, “ErrorFileName”:“BP-ParamLogs”, 这在windows环境下工作,但当我将程序转移到linux并将ErrorPath更改为: “错误路径”:“/home/Logs/”, 未创建

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

`公共类写日志 {

我的启动中的值位于我的appSettings.json文件中:

“错误路径”:“C:\\BP\\”,
“ErrorFileName”:“BP-ParamLogs”,

这在windows环境下工作,但当我将程序转移到linux并将ErrorPath更改为:

“错误路径”:“/home/Logs/”,

未创建该文件


我的问题是,我的语法在linux中是否可以用来写txt文件,或者我的路径是错误的?

来回答关于语法的特定问题。
\home\Logs\
应该是
/home/Logs/
,因为linux使用正斜杠作为路径分隔符

您的程序可能没有对
/home/
目录的写访问权限。我曾亲自尝试过类似的程序,但在日志目录创建步骤中遇到了
系统。UnauthorizedAccessException


请尝试使用
dotnet run
从终端运行您的程序,以查看您可能遇到的异常。如果您也在
系统中运行。UnauthorizedAccessException
,然后使用
sudo dotnet run

以root用户身份运行。我刚刚使用命令解决了问题:

find.-name BP Param*


从第一个目录。执行后,它位于docker目录中。

打开斜杠(
“ErrorPath”:“/home/Logs/”
)另外,还要检查您是否具有对
/home/Logs/
的写入权限错误消息是什么?将代码包装在
try catch
-块中以获取错误消息可能会有所帮助。我假设您必须引用路径,如
/home/Logs/
嗨,Daniel,没有显示错误,只是它没有创建lo服务器中的gs试图写入
/home/Logs/
的路径,但无效。先生,如果我的程序是API并在docker中运行,我如何使用dotnet run?
    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");
        }
    }
}`