8 Commits
Author SHA1 Message Date
BlubbFish ca97ec2106 Neue Version mit Mutex 2017-03-09 19:58:12 +00:00
BlubbFish e347e00827 Bugfix in Datum 2017-02-21 09:02:57 +00:00
BlubbFish fa346725bc Kleine Änderungen an Own-Controller 2016-12-03 10:37:48 +00:00
BlubbFish acf90704a8 [NF] now it's easier to specifiy a directory for logging 2016-06-08 11:25:47 +00:00
BlubbFish 845b733326 First Version Ever that runs a little bit 2016-01-26 14:20:42 +00:00
BlubbFish 1823bb05a1 Init of TimeKeeper 2016-01-20 17:21:55 +00:00
BlubbFish 3988395c0a ebbits tisch demo 2015-11-27 12:19:02 +00:00
BlubbFish bcfb499bd0 Automatic Cronjob Checkin: 20151116-221252 2015-11-16 21:12:51 +00:00
6 changed files with 103 additions and 41 deletions
+49 -38
View File
@@ -3,45 +3,56 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.IO; using System.IO;
using System.Reflection;
namespace BlubbFish.Utils namespace BlubbFish.Utils {
{ public class FileLogger {
public class FileLogger private static Dictionary<string, FileLogger> instances = new Dictionary<string, FileLogger>();
{ private static String logDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar;
private static Dictionary<string, FileLogger> instances = new Dictionary<string, FileLogger>(); private StreamWriter file;
private StreamWriter file; private FileLogger(string filename, bool append) {
private FileLogger(string filename, bool append) filename = logDir + filename;
{ if(!File.Exists(filename)) {
if (!File.Exists(filename)) string folder = Path.GetDirectoryName(Path.GetFullPath(filename));
{ if(!Directory.Exists(folder)) {
string folder = Path.GetDirectoryName(Path.GetFullPath(filename)); Directory.CreateDirectory(folder);
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
}
this.file = new StreamWriter(filename, append, Encoding.UTF8);
this.file.AutoFlush = true;
}
public static FileLogger getInstance(string filename, bool append)
{
if (!instances.Keys.Contains(filename))
{
instances.Add(filename, new FileLogger(filename, append));
}
return instances[filename];
}
public void setArray(string[] text)
{
this.file.Write(String.Join(file.NewLine, text) + file.NewLine);
this.file.Flush();
}
public void setLine(string text)
{
this.file.WriteLine(text);
this.file.Flush();
} }
}
this.file = new StreamWriter(filename, append, Encoding.UTF8);
this.file.AutoFlush = true;
} }
public static FileLogger getInstance(string filename, bool append) {
if(!instances.Keys.Contains(filename)) {
instances.Add(filename, new FileLogger(filename, append));
}
return instances[filename];
}
public static void setLogDir(String v) {
v = v.Replace("..", "");
v = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar + v;
if(Directory.Exists(v)) {
logDir = v;
} else {
Directory.CreateDirectory(v);
logDir = v;
}
if(logDir.Substring(logDir.Length - 1) != Path.DirectorySeparatorChar.ToString()) {
logDir = logDir + Path.DirectorySeparatorChar;
}
}
public void setArray(string[] text) {
this.file.Write(String.Join(file.NewLine, text) + file.NewLine);
this.file.Flush();
}
public void setLine(string text) {
this.file.WriteLine(text);
this.file.Flush();
}
public void setLine(string text, DateTime d) {
this.setLine(d.ToString("[yyyy-MM-dd HH:mm:ss.ffff] ") + text);
}
}
} }
+49
View File
@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace BlubbFish.Utils {
public class FileMutex {
private static FileMutex instance;
private String filename;
private StreamWriter file;
private FileMutex() { }
public static FileMutex Instance {
get {
if(FileMutex.instance == null) {
FileMutex.instance = new FileMutex();
}
return FileMutex.instance;
}
}
public void setName(string name) {
string path = AppDomain.CurrentDomain.BaseDirectory;
this.filename = path + string.Join(string.Empty, Array.ConvertAll(new SHA512Managed().ComputeHash(Encoding.UTF8.GetBytes(name)), b => b.ToString("X2"))) + ".lock.txt";
}
public bool create() {
if(File.Exists(this.filename))
return false;
this.file = new StreamWriter(this.filename);
this.initFile();
return File.Exists(this.filename) && file != null;
}
private void initFile() {
this.file.Write("Created: " + DateTime.Now.ToUniversalTime()+"\n");
this.file.Flush();
}
public bool delete() {
this.file.Close();
File.Delete(this.filename);
return !File.Exists(this.filename);
}
}
}
+1
View File
@@ -17,5 +17,6 @@ namespace BlubbFish.Utils
this.init(); this.init();
} }
abstract protected void init(); abstract protected void init();
abstract public void Dispose();
} }
} }
+3 -3
View File
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Utils")] [assembly: AssemblyProduct("Utils")]
[assembly: AssemblyCopyright("Copyright © 2014")] [assembly: AssemblyCopyright("Copyright © 2014 - 03.03.2017")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.2.1")]
[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.2.1")]
+1
View File
@@ -42,6 +42,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="CmdArgs.cs" /> <Compile Include="CmdArgs.cs" />
<Compile Include="FileLogger.cs" /> <Compile Include="FileLogger.cs" />
<Compile Include="FileMutex.cs" />
<Compile Include="InIReader.cs" /> <Compile Include="InIReader.cs" />
<Compile Include="OwnController.cs" /> <Compile Include="OwnController.cs" />
<Compile Include="OwnModel.cs" /> <Compile Include="OwnModel.cs" />
Binary file not shown.