小编swa*_*987的帖子

每天有一个日志

目前我的应用程序使用log4net来记录错误,web.config为此如下:

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="c:/paypal/logs/gateway.log" />
        <appendToFile value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="FileAppender" />
    </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

但是,问题在于每天都会记录日志 gateway.log

有没有人知道使用log4net每天拥有不同日志文件的方法?

理想情况下,我不希望web.config每天使用计划任务手动编辑.

c# error-handling logging log4net

38
推荐指数
3
解决办法
5万
查看次数

SQL - CASE STATEMENT - WHEN语句AND语句

我在尝试找出以下问题的最佳解决方案时遇到问题.

我有一个表有一个State列,其中1是授权的,2是完成的,它们也是其他的.

我还有一个Retailer表,它有一个RetailerProcessType列,其中1是一步,2是两步.

我有以下查询:

CASE purc.State
    WHEN 1 THEN '"AUTHORISED"'
    WHEN 2 THEN '"AUTHORISED"'
    WHEN 4 THEN '"AUTHORISED"'
    ELSE '"DECLINED"'
 END                                                                     
 AS Autorised_Decline_Status,
Run Code Online (Sandbox Code Playgroud)

但我需要做的是如下:

WHEN STATE = 2 AND RetailerProcessType = 1 THEN '"AUTHORISED"'
WHEN STATE = 1 AND RetailerProcessType = 2 THEN '"PENDING"'
WHEN STATE = 2 AND RetailerProcessType = 2 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
Run Code Online (Sandbox Code Playgroud)

我能想到这样做的唯一方法是在查询周围有一个大量的IF语句,一个用于一步零售商,另一个用于两步,因为我的理解是一个IF子句不能有一个"AND".

然而,这似乎只是漫长的啰嗦; 有谁有更整洁的想法?

t-sql

30
推荐指数
2
解决办法
13万
查看次数

发生错误时发送电子邮件

目前我的应用程序使用log4net来记录错误,web.config为此如下:

<log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="../../logs/gateway_%date{yyyyMMdd}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppenderOutput" />
    </root>
  </log4net>
Run Code Online (Sandbox Code Playgroud)

但是,客户端现在希望将每个错误通过电子邮件发送给他们.

最简单的方法是什么,你可以在web.config文件中做到吗?

c# email log4net

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

循环遍历DataRow中的每个元素

基本上,我有DataTable如下:

在此输入图像描述

我想为每行每个元素运行一个具有参数的方法

AddProductPrice(SKU, Price, PriceBracket)
Run Code Online (Sandbox Code Playgroud)

举个例子...:

如果我们取第一行数据,该方法将运行16次,每次一次Total Price X不为空.

因此,对于第一行中的第一个总价格,呼叫将是:

AddProductPrice(SKU, <Total Price 1 value>, 1)
Run Code Online (Sandbox Code Playgroud)

然后,对于第一行中的第二个总价格,呼叫将是:

AddProductPrice(SKU, <Total Price 2 value>, 2)
Run Code Online (Sandbox Code Playgroud)

请注意:对于National Selling元素,电话会是:

AddProductPrice(SKU, <National Selling value>, 16)
Run Code Online (Sandbox Code Playgroud)

是否有一种聪明的方法来循环遍历每个元素DataRow以使该过程更有效?

c# foreach loops

12
推荐指数
2
解决办法
5万
查看次数

C# - 列表 - 删除所有元素,但不删除前四个元素

我有一个元素列表,但是如果列表元素的数量大于4,我想删除所有元素,但只留下列表中的前4个元素.

例:

列表<> - 1,2,3,4,5,6,7,8

新名单应为 - 1,2,3,4

我正在寻找使用List.RemoveAll()但不知道在括号中放什么

期待一些帮助......

史蒂芬

c# list

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

SQL - 限制结果

我想知道你是否可以做这样的事情是Microsoft SQL Server 2k8 R2

假设我有一个返回100行数据的查询.

他们是一种可以传递一些变量的方法,例如@lower_limit和@upper_limit.

然后我希望查询记录下限和上限之间的行

例如:

@lower_limit = 5
@upper_limt  10
Run Code Online (Sandbox Code Playgroud)

会从100条记录中返回5-10行.

sql limit sql-server-2008-r2

2
推荐指数
1
解决办法
835
查看次数

随机数发生器 - 可变长度

目前我的程序(见下文)生成长度为8-12个字符的随机字符串(由数字组成).

public static string GenerateNewCode(int CodeLength)
{
    string newCode = String.Empty;
    int seed = unchecked(DateTime.Now.Ticks.GetHashCode());
    Random random = new Random(seed);

    // keep going until we find a unique code       `
    do
    {
        newCode = random.Next(Convert.ToInt32(Math.Pow(10, CodeLength - 1)), Convert.ToInt32(Math.Pow(10, CodeLength) - 1)).ToString("0000");
    }
    while (!ConsumerCode.isUnique(newCode));

    // return
    return newCode;
}
Run Code Online (Sandbox Code Playgroud)

然而,它们是该方法的问题,当其codeLength为10或更大时,它会导致错误,因为10 9大于int32.MaxValue.

不知道如何解决这个问题.

c# random math integer numbers

2
推荐指数
1
解决办法
6622
查看次数