2013-06-11 2 views
1

내 로그를 파일에 쓰려고하는데, 내 응용 프로그램이 중단 될 때마다 로그가 로그 파일에 저장됩니다. StreamWriter를 내게하지 않습니다 그러나, 나는 모든 경로있는 posibility을 시도했지만, 매번 나는 그것이 나에게이 예외가 발생합니다이를 테스트하려고 : 콘솔 출력과 같이SteamWriter가 파일을 만들고 싶지 않습니다.

System.NotSupportedException: The given path's format is not supported. 

이 경로는 그러나 괜찮을 것을 :

StartLogging=True Trying to write to C:\Users\Tom\documents\visual studio 2012\Projects\xxx\yyy\bin\Debug\logs\06-11-13_11:51:37.log 

이 작동하지 않는 이유를 내가 볼 수 없기 때문에 어떤 도움도 대단히 감사하겠습니다 ...

SaveLog 기능 :

public void SaveLog(bool startLogging = false) 
    { 
     DateTime startTime = LogManager.StartTime; 
     string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 
     string logPath = appPath.Replace("file:\\", "") + "\\logs\\"; 
     string logFile = startTime.ToString("MM-dd-yy_HH:mm:ss") + ".log"; 
     string fullPath = Path.Combine(logPath, logFile); 

     if (!Directory.Exists(logPath)) 
     { 
      Directory.CreateDirectory(logPath); 
     } 

     Console.WriteLine("StartLogging={0} Trying to write to {1}", startLogging, fullPath); 
     using (StreamWriter writer = new StreamWriter(fullPath, !startLogging)) 
     { 
      writer.Write("[{0}][{1}] ", Time.ToString("HH:mm:ss:fff"), Level.ToString()); 
      writer.Write(Message); 
      writer.WriteLine(" ({0} - {1})", Method, Location); 
     } 
    } 
,536,
+1

경로는 콜론 (:) 문자를 포함 할 수 없습니다. – SWeko

+0

경로 수 있습니다. 디렉토리 및 파일 이름은 사용할 수 없습니다. – spender

답변

8

파일 이름에 콜론 (:)을 사용할 수 없다고 생각합니다.

http://support.microsoft.com/kb/177506에서 파일명은 다음과 같은 문자를 사용할 수 없습니다 창에서

\/: * ? " < > | 
+0

수정. 드라이브와 경로 사이의 구분 기호로 사용됩니다. – spender

+0

당신은 절대적으로 옳습니다. 틀림없이 당신은 사용할 수 없습니다 :. –

+0

네가 완전히 옳다! 나는 그것이 미스테리로 남아 있음을 어떻게 보지 못했지만 그것이 해결 되었다니 기쁩니다. 빠른 답변 주셔서 감사합니다! – Kryptoxx

관련 문제