我试图通过将以下xml片段添加到我的csproj文件来更改C#项目的模块名称:
<ItemGroup>
<SonarQubeSetting Include="sonar.projectName">
<Value>Core.XY</Value>
</SonarQubeSetting>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这按照我的预期方式工作(相应地设置SonarQube中的模块名称).
问题:这是支持还是只是意外工作?如果我不得不担心它会随着下一次升级而改变,我真的不想使用这种行为.
生成的sonar-project.properties文件包含以下条目:
B6CCB06F-640A-428E-8A4E-4BBBAD881400.sonar.projectName=XY
...
B6CCB06F-640A-428E-8A4E-4BBBAD881400.sonar.projectName=Core.XY
Run Code Online (Sandbox Code Playgroud)
这可能意味着我的配置或多或少地偶然起作用.
更新: 以下解释了为什么我要更改某些项目的模块名称:我有几个项目的解决方案,例如
Core.sln
- Lib.csproj
- Tools.csproj
Service.sln
- Lib.csproj
- ...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我最终在SonarQube中有两个"Lib"模块,除非我有一种覆盖模块名称的方法.我当然可以重命名项目,但我宁愿能够简单地告诉SonarQube使用哪个模块名称.
如果Sonar Scanner使用程序集名称而不是项目名称,我也会非常高兴.
SonarQube曾经有仪表板,可以非常方便地显示指标随时间的变化情况.甚至还有一个名为"Time Machine"的仪表板.
如何在SonarQube 6.1中看到此类信息?我很欣赏新的关注"泄漏期",但这不是我关心的一切.
我正在使用log4net来记录我的Web应用程序的进度,使用Log4PostSharp来AOP-injectify所有方法.这具有记录(几乎)所有内容的期望效果,并且很好.
我现在需要将JUST Page_Load方法记录到文件/控制台.我显然可以使用log4postsharp类来执行此操作,但之后我将丢失所有其他日志记录.
我一直在查看log4net中的过滤器,从StringMatch过滤器开始,但只查看正在记录的消息,并且我在方法名称之后.这让我进入了PropertyFilter,但仍然没有喜悦.我的log4net.config片段是这样的:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.PropertyFilter">
<key value="LocationInfo.MethodName"/>
<stringToMatch value="Page_Load"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="d:\\xxxx\\yyyyy\\zzzzLog"/>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试通过LocationInfo键入日志记录事件的MethodName,但我仍然记录了所有内容.编辑:正如评论中所提到的,我现在已经包含了我在RTFM之后添加的DenyAllFilter ;-)
有人可以帮忙吗?
谢谢,
迈克K.
我的目标是创建一个可以跨多个项目共享的log4net库.
在我的.net 4.0解决方案中,我创建了一个名为Logger的类库,并从Web项目中引用它.
现在我在类库中创建了一个logger.config,并将所有配置放在logger.config文件中.然后我用了
[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "Logger.config")]
Run Code Online (Sandbox Code Playgroud)
当我运行Web应用程序时,没有任何记录.所以我在web.config中添加了这行代码
<add key="log4net.Internal.Debug" value="true"/>
Run Code Online (Sandbox Code Playgroud)
这给了我调试信息和错误信息
无法在应用程序的.config文件中找到配置节'log4net'.检查.config文件中的和元素.配置部分应如下所示:
我将配置从logger.config移动到web.config,一切似乎都正常.
我不想在web.config中使用log4net配置,但将logger.config作为一种更清洁的方法.目标是使其他项目使用此库,而不必担心每个项目中的配置.
现在的问题是,我该怎么做?我究竟做错了什么?任何带代码示例的建议都将对每个人都有益.
仅供参考,我正在使用结构图IOC在登录之前重新获得记录器.