精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在 ASP.NET Core 中使用 Serilog/Fluentd 將日志寫入 Elasticsearch

開發 后端
在這篇文章中,我描述了如何將 Serilog 日志記錄添加到您的 ASP.NET Core 應用程序并將其配置為以 Elasticsearch 期望的 JSON 格式將日志寫入控制臺。

[[416435]]

本文轉載自微信公眾號「DotNET技術圈」,作者Andrew Lock 。轉載本文請聯系DotNET技術圈公眾號。

原文來自:https://andrewlock.net/writing-logs-to-elasticsearch-with-fluentd-using-serilog-in-asp-net-core/

對于在 Kubernetes 中運行的應用程序,將日志消息存儲在一個中心位置尤為重要。我認為這對所有應用程序都很重要,無論您使用的是 Kubernetes 還是 docker,但 pod 和容器的短暫性質使得后一種情況特別重要。

如果您沒有集中存儲容器中的日志,那么如果容器崩潰并重新啟動,日志可能會永遠丟失。

有很多方法可以實現這一目標。您可以直接從您的應用程序登錄Elasticsearch或Seq,或者登錄到Elmah.io等外部服務。一種常見的方法是使用 Fluentd 從容器的控制臺輸出中收集日志,并將這些日志通過管道傳輸到 Elasticsearch 集群。

默認情況下,ASP.NET Core 中的控制臺日志輸出格式為人類可讀格式。如果您采用 Fluentd/Elasticsearch 方法,您需要確保您的控制臺輸出采用 Elasticsearch 可以理解的結構化格式,即 JSON。

在這篇文章中,我描述了如何將 Serilog 添加到 ASP.NET Core 應用程序,以及如何自定義 Serilog 控制臺接收器的輸出格式,以便您可以使用 Fluentd 將控制臺輸出通過管道傳輸到 Elasticsearch。

請注意,也可以將 Serilog 配置為使用Elasticsearch sink直接寫入Elasticsearch。如果您沒有使用 Fluentd,或者沒有將您的應用程序容器化,那么這是一個不錯的選擇。

將日志寫入控制臺輸出

當您從模板創建新的 ASP.NET Core 應用程序時,您的程序文件將如下所示(至少在 .NET Core 2.1 中):

  1. public class Program 
  2.     public static void Main(string[] args) 
  3.     { 
  4.         CreateWebHostBuilder(args).Build().Run(); 
  5.     } 
  6.  
  7.     public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 
  8.         WebHost.CreateDefaultBuilder(args) 
  9.             .UseStartup<Startup>(); 

靜態輔助方法WebHost.CreateDefaultBuilder(args)創建一個WebHostBuilder并連接許多標準配置選項[1]。默認情況下,它配置控制臺和調試記錄器提供程序:

  1. .ConfigureLogging((hostingContext, logging) => 
  2.     logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); 
  3.     logging.AddConsole(); 
  4.     logging.AddDebug(); 
  5. }) 

如果您從命令行使用 運行您的應用程序dotnet run,您將在控制臺中看到每個請求的日志。下面顯示了來自瀏覽器的兩個請求生成的日志 - 一個用于主頁,另一個用于 favicon.ico。

使用默認控制臺記錄器的控制臺輸出

不幸的是,控制臺記錄器在如何寫入日志方面沒有提供很大的靈活性。您可以選擇包含 scopes或禁用顏色,但僅此而已。

ASP.NET Core 中默認Microsoft.Extensions.Logging基礎結構的替代方法是使用 Serilog進行日志記錄,并將其作為標準 ASP.NET Core 記錄器進行連接。

將 Serilog 添加到 ASP.NET Core 應用程序

Serilog是一個成熟的開源項目,早于 ASP.NET Core 中的所有日志記錄基礎結構。在許多方面,ASP.NET Core 日志記錄基礎結構似乎以 Serilog 為模型:Serilog 具有類似的配置選項和可插拔的“接收器”來控制寫入日志的位置。

開始使用 Serilog 的最簡單方法是使用Serilog.AspNetCore NuGet 包。使用以下命令將其添加到您的應用程序中:

  1. dotnet add package Serilog.AspNetCore 

您還需要添加一個或多個“sink”包,以控制日志的寫入位置。在這種情況下,我將安裝控制臺接收器,但如果您想一次寫入多個目的地,您也可以添加其他接收器。

  1. dotnet add package Serilog.Sinks.Console 

Serilog.AspNetCore 包UseSerilog()在WebHostBuilder實例上提供了一個擴展方法。這用ILoggerFactorySerilog 的實現替換了默認值。您可以傳入現有Serilog.ILogger實例,也可以內聯配置記錄器。例如,以下代碼配置將寫入的最低日志級別 ( info) 并注冊控制臺接收器:

  1. public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 
  2.     WebHost.CreateDefaultBuilder(args) 
  3.         .UseSerilog((ctx, config) => 
  4.         { 
  5.             config 
  6.                 .MinimumLevel.Information() 
  7.                 .Enrich.FromLogContext() 
  8.                 .WriteTo.Console(); 
  9.         }) 
  10.         .UseStartup<Startup>(); 

當您使用 Serilog 而不是默認記錄器時再次運行應用程序會提供以下控制臺輸出:

使用 Serilog 而不是默認的控制臺記錄器的控制臺輸出

輸出類似于默認記錄器,但重要的是它是非??膳渲玫?。您可以隨意更改輸出模板。例如,您可以通過包含SourceContext參數來顯示生成日志的類的名稱。

有關 Serilog.AspNetCore 包的更多詳細信息和示例,請參閱 GitHub 存儲庫[2]。有關控制臺格式選項,請參閱Serilog.Sinks.Console 存儲庫[3]。

除了對輸出模板的簡單更改外,控制臺接收器還允許完全控制消息的呈現方式。我們將使用該功能將日志呈現為 Fluentd 的 JSON,而不是人性化的格式。

自定義Serilog Console Sink的輸出格式寫入JSON

要更改數據的呈現方式,您可以添加自定義ITextFormatter. Serilog 包含一個JsonFormatter您可以使用的,但建議您考慮使用Serilog.Formatting.Compact包[4]:

“CompactJsonFormatter與 Serilog 的默認值相比,大大減少了小日志事件的字節數JsonFormatter,同時保持人類可讀。它通過更短的內置屬性名稱、更精簡的格式以及排除冗余信息來實現這一點。”

我們不會將這個包用于我們的 Fluentd/Elasticsearch 用例,但我將展示如何在任何情況下插入它。使用 添加包dotnet add package Serilog.Formatting.Compact,創建格式化程序的新實例,并將其傳遞給調用中的WriteTo.Console()方法UseSerilog():

  1. .UseSerilog((ctx, config) => 
  2.     config 
  3.         .MinimumLevel.Information() 
  4.         .Enrich.FromLogContext() 
  5.         .WriteTo.Console(new CompactJsonFormatter()); 
  6. }) 

現在,如果您運行您的應用程序,您將看到以 JSON 格式寫入控制臺的日志:

使用 CompactJsonFormatter 以 JSON 格式寫入控制臺的日志圖像

這個格式化程序可能對您有用,但就我而言,我希望編寫 JSON 以便 Elasticsearch 能夠理解它。您可以看到緊湊的 JSON 格式(在下面打印得很漂亮),正如承諾的那樣,為時間戳 ( @t)、消息模板 ( @mt) 和呈現的消息 ( @r)使用了緊湊的名稱:

  1.   "@t""2018-05-17T10:23:47.0727764Z"
  2.   "@mt""{HostingRequestStartingLog:l}"
  3.   "@r": [ 
  4.     "Request starting HTTP\/1.1 GET http:\/\/localhost:5000\/  " 
  5.   ], 
  6.   "Protocol""HTTP\/1.1"
  7.   "Method""GET"
  8.   "ContentType"null
  9.   "ContentLength"null
  10.   "Scheme""http"
  11.   "Host""localhost:5000"
  12.   "PathBase"""
  13.   "Path""\/"
  14.   "QueryString"""
  15.   "HostingRequestStartingLog""Request starting HTTP\/1.1 GET http:\/\/localhost:5000\/  "
  16.   "EventId": { 
  17.     "Id": 1 
  18.   }, 
  19.   "SourceContext""Microsoft.AspNetCore.Hosting.Internal.WebHost"
  20.   "RequestId""0HLDRS135F8A6:00000001"
  21.   "RequestPath""\/"
  22.   "CorrelationId"null
  23.   "ConnectionId""0HLDRS135F8A6" 

對于最簡單的 Fluentd/Elasticsearch 集成,我希望使用標準 Elasticsearch 名稱(例如@timestamp時間戳)輸出 JSON 。幸運的是,所需要的只是更換格式化程序。

使用與 Elasticsearch 兼容的 JSON 格式化程序

該Serilog.Sinks.Elasticsearch包包含正是我們所需要的格式ElasticsearchJsonFormatter。這使用標準 Elasticsearch 字段(如@timestamp和 )呈現數據fields。

不幸的是,目前除了復制和粘貼源代碼首先檢查許可證之外,將格式化程序添加到您的項目的唯一方法是安裝整個Serilog.Sinks.Elasticsearch包,它有很多依賴項。

理想情況下,我希望將格式化程序視為它自己的獨立包,就像Serilog.Formatting.Compac一我提出了一個問題[5]如果這對您來說不是問題(這對我來說不是問題,因為我已經依賴Elasticsearch.Net,那么添加 Elasticsearch Sink 來訪問格式化程序是最簡單的解決方案。使用添加接收器dotnet add package Serilog.Sinks.ElasticSearch,并更新您的 Serilog 配置使用ElasticsearchJsonFormatter:

  1. .UseSerilog((ctx, config) => 
  2.     config 
  3.         .MinimumLevel.Information() 
  4.         .Enrich.FromLogContext() 
  5.         .WriteTo.Console(new ElasticsearchJsonFormatter(); 
  6. }) 

連接此格式化程序后,控制臺輸出將包含常見的 Elasticsearch 字段,如@timestamp,如下面(漂亮打印)輸出所示:

  1. {  "@timestamp""2018-05-17T22:31:43.9143984+12:00",  "level""Information",  "messageTemplate""{HostingRequestStartingLog:l}",  "message""Request starting HTTP\/1.1 GET http:\/\/localhost:5000\/  ",  "fields": {    "Protocol""HTTP\/1.1",    "Method""GET",    "ContentType"null,    "ContentLength"null,    "Scheme""http",    "Host""localhost:5000",    "PathBase""",    "Path""\/",    "QueryString""",    "HostingRequestStartingLog""Request starting HTTP\/1.1 GET http:\/\/localhost:5000\/  ",    "EventId": {      "Id": 1    },    "SourceContext""Microsoft.AspNetCore.Hosting.Internal.WebHost",    "RequestId""0HLDRS5H8TSM4:00000001",    "RequestPath""\/",    "CorrelationId"null,    "ConnectionId""0HLDRS5H8TSM4"  },  "renderings": {    "HostingRequestStartingLog": [      {        "Format""l",        "Rendering""Request starting HTTP\/1.1 GET http:\/\/localhost:5000\/  "      }    ]  }} 

現在日志以一種可以直接從 Fluentd 傳輸到 Elasticsearch 的格式呈現。我們可以只寫到控制臺。

根據托管環境在輸出格式化程序之間切換

最后的提示。如果您想在本地開發時獲得人類可讀的控制臺輸出,并且只在 Staging 或 Production 中使用 JSON 格式化程序怎么辦?

這很容易實現,因為UseSerilog擴展提供了IHostingEnvironment通過WebHostBuilderContext. 例如,在以下代碼段中,我將應用程序配置為在開發中使用人類可讀的控制臺,并在其他環境中使用 JSON 格式化程序。

  1. .UseSerilog((ctx, config) => 
  2.     config 
  3.         .MinimumLevel.Information() 
  4.         .Enrich.FromLogContext(); 
  5.  
  6.     if (ctx.HostingEnvironment.IsDevelopment()) 
  7.     { 
  8.         config.WriteTo.Console(); 
  9.     } 
  10.     else 
  11.     { 
  12.         config.WriteTo.Console(new ElasticsearchJsonFormatter()); 
  13.     } 
  14. }) 

除了環境之外,您還可以根據通過IConfiguration對象 at提供的配置值進行切換ctx.Configuration。

概括

將日志存儲在一個中心位置很重要,尤其是在您構建容器化應用程序時。一種可能的解決方案是將日志輸出到控制臺,讓 Fluentd 監控控制臺,并將輸出通過管道傳輸到 Elasticsearch 集群。在這篇文章中,我描述了如何將 Serilog 日志記錄添加到您的 ASP.NET Core 應用程序并將其配置為以 Elasticsearch 期望的 JSON 格式將日志寫入控制臺。

References

[1] 連接許多標準配置選項: https://github.com/aspnet/MetaPackages/blob/2.1.0-rc1-final/src/Microsoft.AspNetCore/WebHost.cs#L150

[2] 請參閱 GitHub 存儲庫: https://github.com/serilog/serilog-aspnetcore

[3] Serilog.Sinks.Console 存儲庫: https://github.com/serilog/serilog-sinks-console

[4] 考慮使用Serilog.Formatting.Compact包: https://github.com/serilog/serilog-formatting-compact 

[5] 我提出了一個問題: https://github.com/serilog/serilog-sinks-elasticsearch/issues/176

 

責任編輯:武曉燕 來源: DotNET技術圈
相關推薦

2021-02-02 16:19:08

Serilog日志框架

2009-07-20 16:45:41

使用StringBuiASP.NET

2021-01-31 22:56:50

FromServiceASP

2021-02-28 20:56:37

NCache緩存框架

2021-03-10 09:40:43

LamarASP容器

2021-02-03 13:35:25

ASPweb程序

2021-01-07 07:39:07

工具接口 Swagger

2021-01-28 22:39:35

LoggerMessa開源框架

2021-03-03 22:37:16

MediatR中介者模式

2021-02-06 21:40:13

SignalR通訊TypeScript

2021-03-17 09:45:31

LazyCacheWindows

2025-04-16 10:12:13

2009-05-05 14:02:14

PlaceHolder控件ASP.NET

2021-02-17 08:51:55

cookie身份驗證

2021-02-07 17:29:04

監視文件接口

2021-11-01 14:52:38

ElasticSear索引SQL

2024-05-17 08:59:02

.NET對象映射庫

2021-11-02 13:54:41

ElasticSear.NET程序

2009-02-05 13:40:03

TreeviewXMLASP.NET

2016-12-01 09:44:29

ASP.NET在線編輯器
點贊
收藏

51CTO技術棧公眾號

免费看黄色91| 九九99久久精品在免费线bt| 91丝袜呻吟高潮美腿白嫩在线观看| 国内偷自视频区视频综合| 中文字幕 亚洲一区| 日韩性xxx| 亚洲欧美经典视频| 国产欧美日韩综合一区在线观看 | 久久久亚洲天堂| 中文字幕在线看高清电影| 日韩综合久久| 精品久久久国产| 亚洲一区二区三区加勒比 | 欧美一级视频免费观看| 成久久久网站| 亚洲成人网av| 国产欧美一区二| 涩涩视频在线免费看| 亚洲视频 欧洲视频| 久久精品一二三区| 国产xxxx在线观看| 秋霞电影网一区二区| 久久久久久久久国产| 999福利视频| 亚洲欧洲av| 精品久久久久久久久久久久久久久| 成人三级视频在线播放| 欧美78videosex性欧美| 国产精品沙发午睡系列990531| 国产欧美一区二区视频 | 亚洲女同av| 亚洲高清不卡在线观看| 91香蕉视频网址| 国产三级在线| www一区二区| 国产亚洲精品自在久久| 国产高清免费观看| 紧缚捆绑精品一区二区| 国产精品成人v| 男女视频免费看| 伊人天天综合| 九九精品在线视频| www.色小姐com| 91成人免费| 视频在线观看99| 亚洲av熟女国产一区二区性色| 外国成人在线视频| 亚洲精品国产精品国自产在线| 日韩精品xxx| 国产精品xnxxcom| 91麻豆精品国产91久久久资源速度 | 激情综合自拍| 国产精品乱码久久久久久| 日韩视频永久免费| 香蕉视频禁止18| 日本高清不卡一区二区三区视频 | 91精品国产高清一区二区三密臀| 欧美午夜久久| 欧美精品videos性欧美| 免费在线观看黄视频| 你懂的国产精品| 欧美成人午夜激情视频| 久久久久久久久久网站| 狠狠入ady亚洲精品| 欧美国产乱视频| 久久在线视频精品| 在线不卡欧美| 欧美诱惑福利视频| 久久久久久不卡| 欧美aaa在线| 国产在线视频欧美| 99精品人妻无码专区在线视频区| 国产精品影视在线| 在线看一区二区| 久久精品亚洲精品| 永久免费看片直接| 亚洲电影在线一区二区三区| 久久av.com| 日本五十熟hd丰满| 国产日韩一区二区三区在线| 日本精品一区二区三区在线播放视频| 香蕉影院在线观看| 久久爱www久久做| 成人在线激情视频| 亚洲精品国产精品乱码不卡| 99九九99九九九视频精品| 日本一区二区三区免费观看| 自拍视频在线播放| 亚洲卡通动漫在线| 国产中文字幕在线免费观看| 美女网站视频一区| 欧美一区二区福利视频| www.88av| 清纯唯美日韩| 97久久精品国产| av手机天堂网| 成人性色生活片| 欧美一区二区三区成人久久片 | www.久久视频| 六月丁香婷婷久久| 亚洲成人第一页| 妞干网这里只有精品| 成人国产电影在线观看| 在线观看成人免费视频| 91人妻一区二区三区| 婷婷成人在线| 久久久国产一区| 国产成人无码精品久在线观看| 免费观看在线色综合| 成人一区二区在线| 福利片在线观看| 亚洲一级二级在线| 日韩精品视频一二三| www毛片com| 亚洲小少妇裸体bbw| 欧美日韩一本到| 免费中文字幕av| 天天综合精品| 国产精品久久久久秋霞鲁丝| 日韩中文字幕综合| 亚洲天堂精品视频| 欧美婷婷精品激情| 亚洲专区视频| 久久久女人电视剧免费播放下载| 一炮成瘾1v1高h| 日本一区二区视频在线| 爱福利视频一区二区| 成人影院中文字幕| 欧美大胆在线视频| 一区二区三区午夜| 中文字幕不卡的av| 最近免费中文字幕中文高清百度| 凹凸成人在线| 久久99国产精品久久久久久久久| 正在播放木下凛凛xv99| 国产亚洲欧美日韩日本| 国产免费毛卡片| 成人自拍在线| 欧美日本精品在线| jlzzjlzz亚洲女人18| 最新国产成人在线观看| 最近中文字幕一区二区| 国产一区二区三区四区五区| 51午夜精品视频| 天天色综合久久| 亚洲h动漫在线| 人妻激情偷乱频一区二区三区| 亚洲精品极品少妇16p| 成人网址在线观看| 成视频免费观看在线看| 欧美精品日韩综合在线| 国产精品视频一区二区在线观看| 另类专区欧美蜜桃臀第一页| 亚洲欧美日韩精品在线| 国产一区影院| 久久精品视频在线观看| a天堂视频在线| 亚洲一区在线观看免费观看电影高清| 亚洲午夜精品在线观看| 雨宫琴音一区二区在线| 精品日本一区二区三区在线观看 | 成人激情免费视频| 国产精品扒开腿做爽爽爽视频 | 国产精品久久久久久久浪潮网站| 邪恶网站在线观看| 久久久久av| 国产精品麻豆免费版| 欧美videosex性欧美黑吊| 一区二区电影在线观看| 26uuu亚洲国产精品| 亚洲色图另类小说| 色噜噜狠狠色综合欧洲selulu| 久久精品国产亚洲av麻豆| 日韩精品免费视频人成| 亚洲欧洲精品一区| 免费观看性欧美大片无片| 欧美黑人国产人伦爽爽爽| 污污网站免费在线观看| 色老汉av一区二区三区| 97在线观看视频免费| 成人动漫一区二区在线| 免费在线观看的毛片| 日韩在线不卡| 国产精品国产三级欧美二区| 亚洲男人av| 久久国产精品偷| 视频在线不卡| 欧美精品1区2区3区| 国产一级在线播放| 国产日韩欧美精品在线| 久久久久久无码精品人妻一区二区| 亚洲日本免费| 一级日韩一区在线观看| 成人性生交大片免费看中文视频| 国产91精品最新在线播放| 国产高清一区二区三区视频| 亚洲精品第一页| 在线免费观看一级片| 亚洲国产另类av| 欧美日韩生活片| av网站免费线看精品| 亚洲综合欧美激情| 日韩一区二区久久| 宅男av一区二区三区| 精品精品国产三级a∨在线| 国产精品网红福利| segui88久久综合9999| www.亚洲一区| 天堂av在线7| 日韩三级在线观看| 欧美人一级淫片a免费播放| 亚洲最新视频在线播放| 色一情一交一乱一区二区三区| 国产69精品久久久久777| 国产精品久久a| 99成人在线| 男人c女人视频| 婷婷亚洲综合| 亚洲成人av动漫| 香蕉久久精品| 国产日韩欧美精品| 国产高清精品二区| 国产欧美日韩中文字幕在线| 一区一区三区| 91精品国产99久久久久久| 97影院秋霞午夜在线观看| 中文字幕亚洲一区在线观看| 天天干,夜夜操| 精品国产乱码久久久久久夜甘婷婷 | 羞羞的视频在线观看| 日韩亚洲欧美成人| 成人精品一区| 亚洲人成网站色ww在线| 三级视频在线| 亚洲精品理论电影| 天堂网在线观看视频| 精品捆绑美女sm三区| 国产福利久久久| 国产99久一区二区三区a片 | 久久九九精品视频| 国产脚交av在线一区二区| 国产日产在线观看| 免费观看在线综合色| 欧美在线观看视频网站| 免费中文字幕日韩欧美| 动漫av网站免费观看| 亚洲国产导航| 波多野结衣之无限发射| 99国产精品视频免费观看一公开 | 国产乱子伦一区二区三区国色天香| 2025韩国理伦片在线观看| 美女视频一区二区| 一起操在线视频| 久久99精品久久久久久| 蜜臀一区二区三区精品免费视频| 日本欧美久久久久免费播放网| 成人在线观看黄| 丝袜国产日韩另类美女| 男女无套免费视频网站动漫| 老司机免费视频一区二区三区| 日本人69视频| 国产伦精一区二区三区| 国产av一区二区三区传媒| 不卡av电影在线播放| 成年人在线观看av| 国产精品天干天干在线综合| 天天爽天天爽天天爽| 亚洲精品免费视频| 香蕉免费毛片视频| 色国产综合视频| 伊人成人在线观看| 欧美一三区三区四区免费在线看| www.久久久久久| 亚洲精品99久久久久中文字幕| 男人的天堂在线视频| 一本大道亚洲视频| 超碰人人在线| 91精品国产电影| 色综合视频一区二区三区日韩| 91精品国自产在线观看 | 开心九九激情九九欧美日韩精美视频电影 | 二区三区在线观看| 高清亚洲成在人网站天堂| 欧美色网在线| 97人人澡人人爽| 亚洲人亚洲人色久| 中文字幕在线观看一区二区三区| 激情久久婷婷| 国产成人黄色网址| 成人91在线观看| 性生交大片免费全黄| 午夜精品久久久久影视| 国产一级片一区二区| 欧美成人性福生活免费看| 精品美女视频在线观看免费软件| 久久精品一本久久99精品| 国产在线精彩视频| 国产欧美在线播放| 欧美交a欧美精品喷水| 一级做a爰片久久| 国产精品美女久久久浪潮软件| 中文字幕22页| 久久久美女毛片| 久久黄色免费视频| 欧美日韩成人综合| 五月天激情婷婷| 欧美成人一区二区三区电影| 色婷婷综合久久久中字幕精品久久| 亚洲伊人久久综合| 精品理论电影在线| 九一国产精品视频| 国产精品一区二区黑丝| 91精品久久久久久久久久久久| 亚洲一区二区精品久久av| 亚洲综合一区中| 亚洲欧美一区二区三区在线| 久草在线视频网站| 91天堂在线视频| 欧美一级精品片在线看| 91av资源网| av日韩在线网站| 久久久久久天堂| 日韩一区二区三区电影| 91精彩视频在线播放| 欧美亚州一区二区三区| 成人av动漫| 男人日女人的bb| 国产一区二区三区不卡在线观看| 卡一卡二卡三在线观看| 欧美视频在线视频| 亚洲欧美日韩综合在线| 97视频在线观看视频免费视频| 视频在线一区| 777久久精品一区二区三区无码| 久久99精品久久久久久动态图 | av一区在线观看| 国产suv精品一区二区| 网曝91综合精品门事件在线| 每日在线观看av| av成人免费在线| 国产在线欧美在线| 日韩精品一区在线观看| 亚洲丝袜精品| 999热视频在线观看| 91精品国产自产拍在线观看蜜| 久久这里只精品| 国产精品久久久久久妇女6080| 一区二区视频免费观看| 日韩在线免费视频观看| 日本久久一区| 色撸撸在线观看| 国产高清在线观看免费不卡| 91久久国产综合| 日韩一区二区麻豆国产| 羞羞视频在线观看免费| 国产精品果冻传媒潘| 136国产福利精品导航网址| 中文字幕人妻一区二区三区| 午夜精品在线视频一区| 亚洲欧美日本在线观看| 国产999在线观看| 日本精品三区| 国产九九九视频| 亚洲一本大道在线| 色屁屁草草影院ccyycom| 午夜精品一区二区三区在线播放 | 一本色道久久综合狠狠躁篇的优点 | 国产主播在线一区| 女主播福利一区| 青青草视频网站| 色婷婷av一区二区| 蜜桃视频网站在线观看| 国产精品二区在线| 1024成人| 一级在线观看视频| 欧美一区2区视频在线观看| heyzo高清国产精品| 欧美日韩免费精品| 久国产精品韩国三级视频| 免费在线一区二区三区| 亚洲精品一区av在线播放| 另类一区二区三区| 少妇大叫太大太粗太爽了a片小说| 99久久精品免费| 91国产精品一区| 亚洲2020天天堂在线观看| heyzo久久| 黄色av电影网站| 欧美色精品在线视频| 羞羞视频在线观看免费| 欧洲精品久久| 国产成人在线观看| 高潮毛片又色又爽免费| 欧美亚洲一区二区三区| 亚洲v国产v在线观看| 国产精品亚洲第一区在线暖暖韩国| 国产精品视频免费播放| 久久精品视频免费播放| 亚洲精华一区二区三区| 日本少妇激三级做爰在线|