C# 定义非“编译符号”;csproj";文件
我使用了很多“编译符号”来控制不同的事情,例如日志记录C# 定义非“编译符号”;csproj";文件,c#,visual-studio,visual-studio-2012,C#,Visual Studio,Visual Studio 2012,我使用了很多“编译符号”来控制不同的事情,例如日志记录 [Conditional("LOG_AAA")] public static void Warning(string s) { swLog.WriteLine(DateTime.Now.TimeOfDay + " [Warning] " + s); } 在任何时候,我都可以打开/关闭“日志”,并控制是否需要写入某些日志。 我有来自程序不同部分的多种类型的日志,我需要经常打开/关闭其中一些日志
[Conditional("LOG_AAA")]
public static void Warning(string s)
{
swLog.WriteLine(DateTime.Now.TimeOfDay + " [Warning] " + s);
}
在任何时候,我都可以打开/关闭“日志”,并控制是否需要写入某些日志。
我有来自程序不同部分的多种类型的日志,我需要经常打开/关闭其中一些日志
问题是,每次我更改任何设置时,我的“csproj”文件都会更新,当我将其存储在存储库中时,我必须提交它
问题是如何解决这个问题
- 不在存储库中存储“csproj”文件?但是这个文件包含很多重要的东西,所以我恐怕必须将它存储在存储库中
- 是否将“csproj”文件存储在存储库中?那么,如何“提取”我经常修改的“编译符号”
可能“log4net”可以解决我的问题,但我不想使用它,因为我喜欢我非常简单的日志机制。我不想在一个库中添加很多我不想使用的东西,所以请不要建议我切换到“log4net”。我同意这可能会解决我的问题,我可能应该改用它,但在这个问题上,让我们假设“log4net”(以及其他库)不是一个选项。此外,这个问题不仅涉及日志记录,还涉及可用于控制任何内容(包括日志记录)的编译符号。编译符号应用于控制编译行为,而不是执行时行为。使用
.config
文件存储执行时间设置。同样地,log4net
也会……但我想排除编译时的某些方法调用,因为性能要求。这个问题的答案可能会帮助您: