当前位置: 首页 > 面试题库 >

索引格式每天至每周更改

滕成双
2023-03-14
问题内容

我当前正在将日志从Nlog发送到ElasticSearch。我每天创建索引,并将日志发送到该索引。我想创建每周索引,所以我想更改配置文件。

我在NLog配置文件中创建索引。 index = "logstash-${date:format=yyyy.MM.dd}"

我的NLog配置部分:

  <target xsi:type="ElasticSearch" 
    index = "logstash-${date:format=yyyy.MM.dd}"
    uri="http://localhost:9200" 
    includeAllProperties ="true">
   </target>

我在一些论坛(https://github.com/logstash-plugins/logstash-output-
elasticsearch/issues/541#issuecomment-270923437
)中发现,我每周都应该使用xxxx.ww之类的内容。我试图像这样更改配置文件:
index = "logstash-${date:format=xxxx.ww}"

不幸的是,这是给我的结果logstash-xxxx.ww,我是预期的结果logstash-2019.25

那么我如何才能每天更改为每周一次?


问题答案:

${date}接受与相同的格式DateTime.ToString。不幸的是,.NET没有ww或weeknumber格式(请参阅自html" target="_blank">定义日期和时间格式字符串 -.NET |
Microsoft Docs

论坛上的链接谈论的是Joda Time,它是Java而不是.NET的库。

// This presumes that weeks start with Monday.
// Week 1 is the 1st week of the year with a Thursday in it.
public static int GetIso8601WeekOfYear(DateTime time)
{
    // Seriously cheat.  If its Monday, Tuesday or Wednesday, then it'll 
    // be the same week# as whatever Thursday, Friday or Saturday are,
    // and we always get those right
    DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time);
    if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday)
    {
        time = time.AddDays(3);
    }

    // Return the week of our adjusted day
    return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
}

创建一个渲染2019.25等的布局渲染器(请参阅NLog文档-
如何编写自定义布局渲染器)

using NLog.LayoutRenderers;
using NLog;
...

// register ${myDateTime}. Register a soon as possible (e.g main(), app_start etc)
LayoutRenderer.Register("myDateTime", logEventInfo => 
    logEventInfo.TimeStamp.Year +"." + GetIso8601WeekOfYear(logEventInfo.TimeStamp));

现在这应该工作:

index = "logstash-${myDateTime}"


 类似资料:
  • 问题内容: 我想知道是否有人可以通过一些SQL帮助我,以便在两天或更长时间(让我们以7天为参考)期间返回登录到数据库表中的唯一身份用户的数量。 我的日志表在每行中都包含一个时间戳(ts)和user_id,代表当时该用户的活动。 以下查询从该日志返回每日活动用户或DAU: 现在,让我们说我想在此单个查询中添加(或至少以最有效的方式进行检索)每周活动用户或7天期间记录的唯一身份用户总数。但是,我不想将

  • 我希望有办法解决这个问题,因为关于pyplot中的xtick格式有很多问题,但我没有发现任何与这个问题相关的东西。 我有以下代码: 它工作得很好,但是输出有点混乱,因为这是每周的数据。 一些样本数据: 输出: xticks标签是不可读的,我想知道是否有人知道如何拥有相同的每周图表,但xticks只代表一年。我尝试了几种不同的方法,但是要么(1)它将图形缩小到屏幕的最左边,要么(2)我得到一个错误,

  • 我有一个名为-'users'的示例sql表,其中包含以下记录: 我想获得每一个用户的计数在每日,每周和每月的基础上与预期的outlike为:

  • 问题内容: 我每周有一些设备的日志数据。对于某些设备,它从星期一开始,对于某些设备,它在星期三开始,等等。有时此数据中有〜月的间隔,但是我希望DataFrame索引仍然包含每周具有NaN值的行。 我正在尝试在Python中使用,但是我无法获得期望的结果。 例: 是)我有的: 我期望/想要的(请注意带有NaN的2个新行): 我得到的是: 因此,我获得了每个星期日的所有值和日期。但是我不需要每个星期天

  • 问题内容: 我试过重新安装netbeans,试过重新安装java。我不确定发生了什么,但是我从每个类中都随机得到此异常,直到重新启动netbeans。有类似问题的人吗? 跑: 问题答案: 有时,NetBeans本地缓存目录会损坏(由于应用程序更早崩溃或发生其他/未定义的情况)。NetBeans开始表现异常。重新安装没有帮助,因为本地缓存目录并不总是被删除。 如果您100%确定您的应用程序没有路径问

  • 问题内容: 我有一个带有大量行的表。一列包含格式为’%m /%d /%Y’的日期,我想将它们全部更改为格式’%Y-%m-%d’ 通常:更新表设置mydate =‘6’ 我猜是行不通的,因为日期总是在变化。在这种情况下,我该怎么办? 问题答案: 如果日期字符串中的字段正确地用零填充,则可以将它们提取为子字符串: