2017-02-09 7 views
-1

StreamWriter에 문제가 있습니다. Visual Studion 2010 및 2015, .NET Framework 4.0을 사용하고 있습니다. 다음은 로그 파일을 작성하는 내 코드의 샘플입니다 : 내가 모르는 어떤 이유C# StreamWriter 입력 문자열이 파일의 출력 문자열과 동일하지 않습니다.

Expected OUTPUT: 

10:10:02 e7424f10d1ee431fb69d9014265b278a | [email protected] | Sent 

---------- 



ACTUAL OUTPUT 

10:10:02 e742431091ee4313b6999014265b278a | [email protected] | SenA 

---------- 

: 어떤 이유

using (StreamWriter swErr = new StreamWriter(HostingEnvironment.MapPath("~/Logs/") + 
      DateTime.Now.ToString("yyyyMMdd") + ".log", true, Encoding.Default)) 
{ 
    if (!string.IsNullOrEmpty(errMsg)) 
     swErr.WriteLine(DateTime.Now.ToString("HH:mm:ss " + errMsg)); 
    if (result != null && result.Count > 0) 
     foreach (Mandrill.EmailResult x in result) 
     { 
      stat = string.Format("{0} | {1} | {2} | {3}", 
         x.Id, x.Email, x.Status, x.RejectReason ?? "-" 
      ); 
      Console.WriteLine(stat); 
      swErr.WriteLine(DateTime.Now.ToString("HH:mm:ss " + stat)); 
     } 
    if (!string.IsNullOrEmpty(errMsg) || (result != null && result.Count > 0)) 
     swErr.WriteLine("---"); 
} 

가 여기에이 코드의 실제 출력 대 예상 샘플입니다 어떤 문자를 임의의 숫자 또는 문자로 변환합니다. StreamWriter for Encoding의 매개 변수를 제거하려고 시도했지만 및 Encoding.UTF8을 전달하려고 시도했지만 여전히 동일합니다.

제 생각에는 구문이 좋으며 StreamWriter의 처리가 제대로 처리 된 것 같습니다.

나는 이것에 관해 누구든지 나를 도울 수 있기를 바랍니다.

감사합니다.

+0

입력에 특수 문자가 있습니까? – A3006

+0

File.WriteAllText()를 사용하려고하면 또 하나, 출력은 무엇입니까? – A3006

+0

특수 문자가 없습니다. 또한 streamWriter의 경로에로드 된 파일이 존재하지 않거나 존재하지 않습니다. 나는 당신이 제안한 것을 사용하고 어떤 일이 일어나는지 보려고 노력할 것입니다. –

답변

0

이 질문에 대한 답변을 얻으려면. 내 어리 석음 때문에 정말 유감이지만 구문 오류입니다. 오류 메시지는 날짜의 문자열 형식에 포함됩니다.

DateTime.Now.ToString("HH:mm:ss" + errMsg); 

이 있어야합니다 : 다른 사람이 발생하지 않을

DateTime.Now.ToString("HH:mm:ss") + errMsg; 


희망.