小编Ste*_*gli的帖子

使用SonarQube Scanner for MSBuild控制模块名称

我试图通过将以下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 sonarqube-msbuild-runner sonarqube-scan

8
推荐指数
1
解决办法
410
查看次数

SonarQube 6.1:如何在没有仪表板的情况下查看一段时间内的变化?

SonarQube曾经有仪表板,可以非常方便地显示指标随时间的变化情况.甚至还有一个名为"Time Machine"的仪表板.

如何在SonarQube 6.1中看到此类信息?我很欣赏新的关注"泄漏期",但这不是我关心的一切.

sonarqube sonarqube-web

8
推荐指数
1
解决办法
2354
查看次数

在方法名称上过滤log4net - 无法完全获得它

我正在使用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.

asp.net log4net postsharp log4postsharp

7
推荐指数
1
解决办法
1316
查看次数

使用log4net创建记录器库的最佳实践.是

我的目标是创建一个可以跨多个项目共享的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在登录之前重新获得记录器.

.net logging log4net asp.net-mvc-3

5
推荐指数
1
解决办法
7181
查看次数