jj: check for logfile, log directory on creation

This commit is contained in:
Jonathan Jenne 2018-08-17 11:06:46 +02:00
parent 0ccdb7bbc7
commit 4e08cd757d

View File

@ -100,12 +100,36 @@ Public Class Logger
Dim appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) Dim appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
basePath = Path.Combine(appDataDir, companyName, productName) basePath = Path.Combine(appDataDir, companyName, productName)
ElseIf logPath = PathType.CurrentDirectory Then ElseIf logPath = PathType.CurrentDirectory Then
Dim currentDirectory As String = Environment.CurrentDirectory Dim currentDirectory As String = My.Application.Info.DirectoryPath
basePath = Path.Combine(currentDirectory, "Log") basePath = Path.Combine(currentDirectory, "Log")
Else 'Custom Path Else 'Custom Path
basePath = customLogPath basePath = customLogPath
End If End If
' If directory does not exist, try to create it!
If Not Directory.Exists(basePath) Then
Try
Directory.CreateDirectory(basePath)
Catch ex As Exception
' If creation fails, use failSafe path
basePath = failSafePath
End Try
End If
' Try to create a file in `basePath` to check write permissions
Try
Dim fileAccessPath = Path.Combine(basePath, "accessTest.txt")
Using fs As FileStream = File.Create(fileAccessPath)
fs.WriteByte(0)
End Using
File.Delete(fileAccessPath)
Catch ex As UnauthorizedAccessException
' If creation fails, use failSafe path
basePath = failSafePath
End Try
' Create config object and initalize it ' Create config object and initalize it
config = New LoggingConfiguration() config = New LoggingConfiguration()
config.Variables("product") = productName config.Variables("product") = productName