Skip to content

Commit 309fdd4

Browse files
committed
Add temp logging for Npgsql switches
1 parent 78d48c3 commit 309fdd4

1 file changed

Lines changed: 55 additions & 5 deletions

File tree

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/DriverFactory.cs

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Xtensive.Orm;
1414
using Xtensive.Sql.Info;
1515
using Xtensive.Sql.Drivers.PostgreSql.Resources;
16+
using System.Reflection;
1617

1718
namespace Xtensive.Sql.Drivers.PostgreSql
1819
{
@@ -212,13 +213,56 @@ private static bool SetOrGetExistingLegacyTimeStampBehaviorSwitch(bool valueToSe
212213

213214
private static bool GetSwitchValueOrSet(string switchName, bool valueToSet)
214215
{
215-
if (!AppContext.TryGetSwitch(switchName, out var currentValue)) {
216-
AppContext.SetSwitch(switchName, valueToSet);
217-
return valueToSet;
216+
using (var logWriter = CreateFile(switchName)) {
217+
logWriter?.WriteLine($"GetSwitchValueOrSet called for switch '{switchName}' in attempt to set it to {valueToSet}");
218+
if (!AppContext.TryGetSwitch(switchName, out var currentValue)) {
219+
logWriter?.WriteLine($"Switch '{switchName}' is not set to any value at the moment, setting it to {valueToSet}");
220+
AppContext.SetSwitch(switchName, valueToSet);
221+
logWriter?.WriteLine($"Switch '{switchName}' is set to {valueToSet}");
222+
return valueToSet;
223+
}
224+
else {
225+
logWriter?.WriteLine($"Switch '{switchName}' is already set to value {currentValue}. Setting to {valueToSet} skipped");
226+
return currentValue;
227+
}
218228
}
219-
else {
220-
return currentValue;
229+
}
230+
231+
private static System.IO.TextWriter CreateFile(string switchName)
232+
{
233+
//F:\Projects\DataObjects.Net\Main Projects\do-public\new-master\_Build\tests\Debug\lib\net6.0
234+
var runningDirectory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
235+
if (!runningDirectory.Contains("_Build/tests") && !runningDirectory.Contains(@"_Build\tests")) {
236+
return null;
237+
}
238+
239+
var dirInfo = new System.IO.DirectoryInfo(runningDirectory);
240+
var dotnetName = dirInfo.Name; //net6.0
241+
var libFolder = dirInfo.Parent; // lib
242+
var buildConfigFolder = libFolder.Parent;//Debug/Release
243+
244+
var tempFilesFolder = buildConfigFolder.CreateSubdirectory(dotnetName);
245+
var fileToWrite = System.IO.File.CreateText(System.IO.Path.Combine(tempFilesFolder.FullName, $"Switch_{switchName.Replace('.', '_')}_{Guid.NewGuid()}.log"));
246+
return fileToWrite;
247+
}
248+
249+
private static System.IO.TextWriter CreateFile()
250+
{
251+
//F:\Projects\DataObjects.Net\Main Projects\do-public\new-master\_Build\tests\Debug\lib\net6.0
252+
var runningDirectory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
253+
if (!runningDirectory.Contains($"_Build{System.IO.Path.DirectorySeparatorChar}tests")
254+
&& !runningDirectory.Contains($"_Build{System.IO.Path.AltDirectorySeparatorChar}tests")) {
255+
return null;
221256
}
257+
258+
var dirInfo = new System.IO.DirectoryInfo(runningDirectory);
259+
var dotnetName = dirInfo.Name; //net6.0
260+
var libFolder = dirInfo.Parent; // lib
261+
var buildConfigFolder = libFolder.Parent;//Debug/Release
262+
263+
var tempFilesFolder = buildConfigFolder.CreateSubdirectory(dotnetName);
264+
var fileToWrite = System.IO.File.CreateText(System.IO.Path.Combine(tempFilesFolder.FullName, $"CtorCall_{Guid.NewGuid()}.log"));
265+
return fileToWrite;
222266
}
223267

224268
#endregion
@@ -253,6 +297,12 @@ static DriverFactory()
253297

254298
// DO NOT REPLACE method call with constant value when debugging, CHANGE THE PARAMETER VALUE.
255299
LegacyTimestamptBehaviorEnabled = SetOrGetExistingLegacyTimeStampBehaviorSwitch(valueToSet: false);
300+
301+
using(var logWriter = CreateFile()) {
302+
logWriter.WriteLine($"Driver factory was initialized with");
303+
logWriter.WriteLine($" InfinityAliasForDatesEnabled = {InfinityAliasForDatesEnabled}");
304+
logWriter.WriteLine($" LegacyTimestamptBehaviorEnabled = {LegacyTimestamptBehaviorEnabled}");
305+
}
256306
}
257307
}
258308
}

0 commit comments

Comments
 (0)