mirror of https://github.com/winsw/winsw
Support an optionally specified logpath element.
git-svn-id: https://svn.kenai.com/svn/winsw~subversion/trunk@11 c8b2a3fe-9b5b-6a51-a37e-dc31b0e308faremotes/git-svn
parent
bd2ce3688a
commit
e5b221f801
38
Main.cs
38
Main.cs
|
@ -24,6 +24,7 @@ namespace winsw
|
|||
/// Where did we find the configuration file?
|
||||
/// </summary>
|
||||
public readonly string BasePath;
|
||||
public readonly string BaseName;
|
||||
|
||||
public static string ExecutablePath
|
||||
{
|
||||
|
@ -54,7 +55,8 @@ namespace winsw
|
|||
// register the base directory as environment variable so that future expansions can refer to this.
|
||||
Environment.SetEnvironmentVariable("BASE", p);
|
||||
|
||||
BasePath = Path.Combine(p, baseName);
|
||||
BaseName = baseName;
|
||||
BasePath = Path.Combine(p, BaseName);
|
||||
|
||||
dom.Load(BasePath+".xml");
|
||||
}
|
||||
|
@ -104,6 +106,26 @@ namespace winsw
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LogDirectory is the service wrapper executable directory or the optionally specified logpath element.
|
||||
/// </summary>
|
||||
public string LogDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
XmlNode loggingNode = dom.SelectSingleNode("//logpath");
|
||||
string logDirectory = Path.GetDirectoryName(ExecutablePath);
|
||||
|
||||
if (loggingNode != null)
|
||||
{
|
||||
logDirectory = loggingNode.InnerText;
|
||||
}
|
||||
|
||||
return logDirectory;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Logmode to 'reset', 'roll' once or 'append' [default] the out.log and err.log files.
|
||||
/// </summary>
|
||||
|
@ -271,9 +293,16 @@ namespace winsw
|
|||
/// </summary>
|
||||
private void HandleLogfiles()
|
||||
{
|
||||
string baseName = descriptor.BasePath;
|
||||
string errorLogfilename = baseName + ".err.log";
|
||||
string outputLogfilename = baseName + ".out.log";
|
||||
string logDirectory = descriptor.LogDirectory;
|
||||
|
||||
if (!Directory.Exists(logDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(logDirectory);
|
||||
}
|
||||
|
||||
string baseName = descriptor.BaseName;
|
||||
string errorLogfilename = Path.Combine(logDirectory, baseName + ".err.log");
|
||||
string outputLogfilename = Path.Combine(logDirectory, baseName + ".out.log");
|
||||
|
||||
System.IO.FileMode fileMode = FileMode.Append;
|
||||
|
||||
|
@ -302,7 +331,6 @@ namespace winsw
|
|||
HandleFileCopies();
|
||||
|
||||
EventLog.WriteEntry("Starting "+descriptor.Executable+' '+descriptor.Arguments);
|
||||
string baseName = descriptor.BasePath;
|
||||
|
||||
var ps = process.StartInfo;
|
||||
ps.FileName = descriptor.Executable;
|
||||
|
|
Loading…
Reference in New Issue