小编Jul*_*ian的帖子

如何在NLog中将不同的布局应用于同一目标?

NLog允许我用来SplitGroup将我的消息记录到多个目标.我想使用此功能一次将每条消息记录到常见的,特定用户和日期的日志中:

<variable name="commonLog" value="${logDir}\Common.log" />
<variable name="username" value="${identity:fSNormalize=true:authType=false:isAuthenticated=false}" />
<variable name="userLog" value="${logDir}\ByUser\${username}.log" />
<variable name="dateLog" value="${logDir}\ByDate\${shortdate}.log" />

<target name="logFiles" xsi:type="SplitGroup">
  <target xsi:type="File" fileName="${commonLog}" layout="${myLayout}" />
  <target xsi:type="File" fileName="${userLog}" layout="${myLayout}" />
  <target xsi:type="File" fileName="${dateLog}" layout="${myLayout}" />
</target>
Run Code Online (Sandbox Code Playgroud)

这很好,但我也想对不同级别的严重性使用不同的布局.例如,errorLayout将包含异常信息和插入[!]标记,以便稍后可以突出显示BareTail等日志查看器中的错误:

<variable name="stamp" value="${date} ${username} ${logger}" />

<variable name="debugLayout" value="${stamp} ... ${message}" />
<variable name="infoLayout" value="${stamp} [i] ${message}" /> 
<variable name="warnLayout" value="${stamp} [!] ${message}" />
<variable name="errorLayout"
   value="${warnLayout}${newline}${pad:padding=10:inner=${exception:format=ToString}}" />

<!-- …
Run Code Online (Sandbox Code Playgroud)

c# configuration redundancy nlog nlog-configuration

7
推荐指数
2
解决办法
6386
查看次数

如何在Javascript中的array.forEach中等待异步函数

我试图在内部提出async请求foreach,以便用户稍后获取数据,但它不适用于我.

我知道Array.Foreach是一个同步函数,所以我甚至尝试过$ .when.done但它仍然没有等到它完成.

我可以使用回调,如果它是一个值,但它是一个数组.是否有更好的方法通过回调来处理这个问题,以便async在下一步之前实现等待请求?

browseItems.forEach((browseItem: any) => {

   AsynchFunction();

   cosole.log("Step 2")  
}
function AsynchFunction(){
   console.log("Step 1")
}
Run Code Online (Sandbox Code Playgroud)

我想得到一个输出

步骤1

第2步

javascript typescript

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

禁用/防止在 .NET Core 测试项目中构建时出现 XUnit 警告

我有一个包含多个大型测试用例的项目,该项目的构建大约需要 2-3 分钟。我怀疑这与这个新的警告功能有关......例如:

警告 xUnit2003:不要使用 Assert.Equal()
警告 xUnit2004:不要使用 Assert.Equal() 检查布尔条件。

它正在对数千行执行此操作...

如果有一种方法可以禁用此功能,那就太好了。不确定这是否与 Visual Studio 运行程序或 xunit 本身有关。

c# unit-testing xunit xunit.net asp.net-core

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

如何将 NLog 的目标添加到特定的文本框控件,以便日志消息将显示在该控件中

我使用了以下 NLog 配置来添加日志文本来控制指定表单上的指定名称。

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
  <targets> 
    <target name="control" xsi:type="FormControl" append="true" 
            controlName="textBox1" formName="Form1"/> 
  </targets> 
  <rules> 
    <logger name="*" minlevel="Debug" writeTo="control"/> 
  </rules> 
</nlog> 
Run Code Online (Sandbox Code Playgroud)

我有一个名为 Form1 的表单,并对其进行了名为 textBox1 的控件。nLog仍然在运行时创建一个新表单,并向其添加一个停靠文本框并在其中显示日志。

现在如何使 nLogwrite 将日志写入我的表单和我的控件

configuration nlog winforms

6
推荐指数
1
解决办法
5423
查看次数

errorException消息的NLog参数

当我用NLog 2.0.1捕获异常时,我正在寻找一种记录表达消息的方法

try {
    ....
}
catch(Exception ex) {
    logger.ErrorException("Error with query {0}", query, ex);
}
Run Code Online (Sandbox Code Playgroud)

但是NLog不支持它.发生在我身上的其他形式是

logger.ErrorException(  String.Format("Error with query {0}", query)) , ex);
Run Code Online (Sandbox Code Playgroud)

要么

logger.Error("Error with query {0} {1} {2}", query, ex.Message, ex.StackTrace);
Run Code Online (Sandbox Code Playgroud)

要么

logger.Error("Error with query {0}", query);
logger.ErrorException("", ex);
Run Code Online (Sandbox Code Playgroud)

要么

LogEventInfo ei = new LogEventInfo(LogLevel.Error, logger.Name, null, 
                         "Error with query {0}", new object[] { query }, ex); 
logger.Log(ei);
Run Code Online (Sandbox Code Playgroud)

但是没有一个像调用那样简单.logger.Error () 目前,第一个选项是我的偏好,尽管格式化一个字符串可能不会被使用:

  • 第二个选项不使用异常的布局选项.
  • 第三个在日志中创建两个条目,可能会令人困惑.
  • 第四种选择不太清楚.

还有一些?

c# exception-handling nlog

6
推荐指数
2
解决办法
3819
查看次数

IdentityServer MVC令牌到期

我是Identity Server的新手,我的理解中缺少一个关键概念。我正在使用MVC教程中的代码。

如果我用属性装饰Home控制器[Authorize]并访问我的网站,则会重定向到IdentityServer。然后,使用我的用户名和密码登录。然后,我使用一些自定义代码并进行身份验证。我取回一个AccessToken,然后可以访问Home控制器。

我的客户端设置如下:

  new Client {
                ClientId = "mvc",
                ClientName = "MVC Client",
                AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,
                ClientSecrets = new List<Secret>{new Secret("secret".Sha256())},
                RequireConsent = false,
                AccessTokenLifetime = 1,

                // where to redirect to after login
                RedirectUris = new List<string>{"http://localhost:5002/signin-oidc"},

                // where to redirect to after logout
                PostLogoutRedirectUris = new List<string>{"http://localhost:5002"},

                AllowedScopes = new List<string>
                {
                    StandardScopes.OpenId.Name,
                    StandardScopes.Profile.Name,
                    StandardScopes.OfflineAccess.Name,
                }
            }
Run Code Online (Sandbox Code Playgroud)

我的访问令牌是

{
  "nbf": 1474697839,
  "exp": 1474697840,
  "iss": "http://localhost:5000",
  "aud": "http://localhost:5000/resources",
  "client_id": "mvc",
  "scope": [ …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc identityserver4

6
推荐指数
1
解决办法
906
查看次数

NLog:ColoredConsole 中的颜色特定单词

有没有办法用 NLog 给特定单词着色?我的目标是一个ColoredConsole.

假设我想将longdate着色为红色,callsite着色为蓝色。最好的方法是什么?这似乎不起作用:

<target xsi:type="ColoredConsole"
        name="debugConsole"            
        layout="${longdate} ${callsite} ${message}">
  <highlight-word text="${longdate}" foregroundColor="Red" />
  <highlight-word text="${callsite}" foregroundColor="Blue" />
</target>
Run Code Online (Sandbox Code Playgroud)

c# nlog

6
推荐指数
1
解决办法
3800
查看次数

键入打字稿导入/导出时,VS2017 RTM非常慢

正如标题所示,我正在寻找有关我可能要禁用的功能/扩展的帮助,以解决Visual Studio 2017 IDE(Windows)的特定问题.

当我在使用Typescript时,以下将导致node.js进程激活CPU使用率并使IDE在每次击键时锁定几秒钟.填写导入和导出语句的路径时会发生这种情况,例如:

import { foo } from 'app/file/bar';
export { foo } from 'app/file/bar';
Run Code Online (Sandbox Code Playgroud)

一旦我开始输入,'app/file/bar'一切都会下地狱.Windows资源监视器显示Node.exe占用几乎100%的CPU.它几乎就像是每次按键扫描我的整个项目,以便它可以尝试建议自动完成选项(但没有任何东西出现,一切都只是窒息).

我已经确定了我的tsconfig排除node_modules.

请帮忙 - 我有很多工作要做!

visual-studio visual-studio-2017

6
推荐指数
1
解决办法
870
查看次数

TypeScript:类型“数字”不能分配给类型“0”

我将一个变量声明x

public x : 0;
Run Code Online (Sandbox Code Playgroud)

而不是将其初始化为 0

认为我已经正确地声明了它,我将它初始化为

this.x = 5;
Run Code Online (Sandbox Code Playgroud)

我在上面的行中遇到错误,其中读取

Type '5' is not assignable to type '0'.ts(2322)
Run Code Online (Sandbox Code Playgroud)

谁能告诉,为什么会这样?

typescript

6
推荐指数
1
解决办法
1万
查看次数

HttpPostAttribute 中 Name 参数的用途是什么

我看到以下代码应用于 .net core 操作方法:

[HttpPost("MyAction", Name = "MyAction")]
public IActionResult MyAction()
{
    // some code here
}
Run Code Online (Sandbox Code Playgroud)

HttpPost 属性中“Name”参数的用途是什么?

c# actionmethod asp.net-core

6
推荐指数
1
解决办法
9014
查看次数