<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的Java路上那些事兒

    快樂(lè)成長(zhǎng)
    posts - 110, comments - 101, trackbacks - 0, articles - 7
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    由于項(xiàng)目中使用的log4j.xml這種配置 在網(wǎng)上找到這份介紹較全的 就摘錄下來(lái) 一起分享

    使用log4j

    獲取logger
    Logger.getRootLogger() 獲取根logger
    Logger.getLogger(String name)獲取子logger
    Logger.getLogger(Class clazz)或
    Logger.getLogger(clazz.getName())

    設(shè)置日志級(jí)別(.setLevel(int,Exception))
    Level.ALL打開(kāi)所有日志
    Level.DEBUG 用于調(diào)試
    Level.INFO 用于運(yùn)行過(guò)程
    Level.WARN 用于潛在的錯(cuò)誤
    Level.ERROR 用于錯(cuò)誤事件
    Level.FATAL 用于嚴(yán)重錯(cuò)誤時(shí)間
    Level.OFF 關(guān)閉所有日志

    輸出端Appender(.addAppender(Appender).setAdditivity(boolean additive)是否覆蓋)
    org.apache.log4j.ConsoleAppender 輸出到控制臺(tái)
    targer:
    ConsoleAppender.SYSTEM_OUT(Default)
    ConsoleAppender.SYSTEM_ERR
    public ConsoleAppender(Layout)
    public ConsoleAppender(Layout,String targer)
    org.apache.log4j.FileAppender 輸出到文件
    public FileAppender(Layout,String fileName)
    public FileAppender(Layout,String fileName,boolean append)是否覆蓋
    org.apache.log4j.DailyRollingFileAppender 輸出到文件,每天一個(gè)新文件
    org.apache.log4j.RollingFileAppender 輸出到文件,自動(dòng)新增改名
    public RollingFileAppender(Layout,String fileName)
    void setMaxBackupIndex(int index) 設(shè)置日志文件最大備份數(shù)
    void setMaximumFileSize(long size) 設(shè)置日志文件最大尺寸
    org.apache.log4j.WriterAppender 流格式輸出到任意地方
    org.apache.log4j.JDBCAppender 輸出到數(shù)據(jù)庫(kù)

    日志格式化(Layout)
    %c 類(lèi)全名
    %d 時(shí)間
    %f 類(lèi)名
    %l 位置
    %m 信息
    %n 換行
    %p 級(jí)別
    %r 耗時(shí)
    %t 線程名

    public PatternLayout() 使用默認(rèn)設(shè)置DEFAULT_CONVERSION_PATTERN 只打印信息
    public PatternLayout(String)使用自定義的pattern構(gòu)造一個(gè)PatternLayout
    void setConversionPattern(String) 設(shè)置日志格式
    HTMLLayout
    SimpleLayout


    5.
    1.BasicConfigurator.configure()
    PatternLayout p = new PatternLayout("%p [%t] %c (%F:%L) - %m%n");
    ConsoleAppender a = new ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
    root.addAppender(a);
    rootLogger.setLevel(Level.DEBUG);
    2.PropertyConfigurator.configure("/help/example.properties")
    String resource = "/help/example.properties";
    URL configFileResource = Log4J.class.getResource(resource);
    PropertyConfigurator.configure(configFileResource);
    3.DOMConfigurator.configure("/help/example.xml")
    xml declaration and dtd
    |
    log4j:configuration
    |
    +-- appender (name, class)
    | |
    | +-- param (name, value)
    | +-- layout (class)
    | |
    | +-- param (name, value)
    +-- logger (name, additivity)
    | |
    | +-- level (class, value)
    | | |
    | | +-- param (name, value)
    | +-- appender-ref (ref)
    +-- root
    |
    +-- param (name, class)
    +-- level
    | |
    | +-- param (name, value)
    +-- appender-ref (ref)


    0.log4j.properties模板
    log4j.rootLogger=info,CONSOLE,RFILE,FILE,DB 設(shè)置級(jí)別和三個(gè)輸出端
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Target=System.out 控制臺(tái)類(lèi)型
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern= %4p [%t] (%F:%L) - %m%n

    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=/help/my.properties 目標(biāo)文件
    log4j.appender.FILE.Append=false 是否追加
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 布局模式
    log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %c:%L - %m%n 格式化布局

    log4j.appender.RFILE=org.apache.log4j.RollingFileAppender
    log4j.appender.RFILE.File=/help/my.properties 目標(biāo)文件
    log4j.appender.RFILE.MaxFileSize=1KB 最大長(zhǎng)度
    log4j.appender.RFILE.MaxBackupIndex=3 最多備份
    log4j.appender.RFILE.layout=org.apache.log4j.PatternLayout 布局模式
    log4j.appender.RFILE.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %c:%L - %m%n 格式化布局

    log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.DB.URL=jdbc:oracle:thin:@127.0.0.1:1521:mumu URL
    log4j.appender.DB.driver=oracle.jdbc.driver.OracleDriver 驅(qū)動(dòng)
    log4j.appender.DB.user=liulibo 用戶名
    log4j.appender.DB.password=liulibo 密碼
    log4j.appender.DB.layout=org.apache.log4j.PatternLayout 布局模式
    log4j.appender.DB.layout.ConversionPattern=insert into log4j(createdate,thread,level_,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')

    create table log4j(createdate varchar2(32),thread varchar2(32),level_ varchar2(32),class varchar2(32),message varchar2(32));

    0.XML模板
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

    <log4j:configuration>

    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n"/>
    </layout>
    </appender>

    <appender name="RollingFileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="Append" value="false"/>
    <param name="MaxFileSize" value="1KB"/>
    <param name="File" value="dom/my.log"/>
    <param name="MaxBackupIndex" value="3"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n"/>
    </layout>
    </appender>

    <appender name="JDBCAppender" class="org.apache.log4j.jdbc.JDBCAppender">
    <param name="URL" value="jdbc:oracle:thin:@127.0.0.1:1521:mumu"/>
    <param name="user" value="liulibo"/>
    <param name="password" value="liulibo"/>
    <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="insert into log4j(createdate,thread,level_,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')"/>
    </layout>
    </appender>

    <root>
    <priority value ="debug" />
    <appender-ref ref="ConsoleAppender"/>
    <appender-ref ref="RollingFileAppender"/>
    <appender-ref ref="JDBCAppender"/>
    </root>

    </log4j:configuration>

    應(yīng)用
    web.xml
    <context-param>
    <param-name>props</param-name>
    <param-value>/WEB-INF/log4j.properties</param-value>
    </context-param>

    <listener>
    <listener-class>cart.listener.SCServletContextListener</listener-class>
    </listener>
    初始化方法中添加
    private void initLog4j(ServletContext context){
    String prefix = context.getRealPath("/");
    System.out.println("prefix:"+prefix);
    String props = context.getInitParameter("props");
    if(props != null) {
    PropertyConfigurator.configure(prefix+props);
    }
    Logger logger = Logger.getLogger(SCServletContextListener.class);
    }

     

     

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

    <log4j:configuration threshold="debug"
    xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="console.CONSOLE"
    class="org.apache.log4j.ConsoleAppender">
    <param name="threshold" value="debug" />
    <layout class="org.apache.log4j.PatternLayout">
    <!--
    <param name="ConversionPattern" value="%d{HH:mm:ss}[%C.%M(%L)-%p] %m%n"/>
    -->
    <param name="ConversionPattern" value="%d{HH:mm:ss}[%C(%L)-%p] %m%n"/>
    </layout>
    </appender>

    <appender name="file.text.SYSFILE"
    class="org.apache.log4j.RollingFileAppender">
    <param name="threshold" value="error" />
    <param name="file" value="/juyee.log" />
    <param name="maxFileSize" value="2MB" />
    <param name="maxBackupIndex" value="5" />
    <param name="append" value="true" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern"
    value="%-d{yyyy-MM-dd HH:mm:ss.SSS} [%p]-[%c] %m%n" />
    </layout>
    </appender>
    <appender name="file.text.DATE_FILE"
    class="org.apache.log4j.DailyRollingFileAppender">
    <param name="threshold" value="debug" />
    <param name="file" value="/juyee.log" />
    <param name="append" value="true" />
    <param name="datePattern" value="'.'yyyy-MM-dd" />
    <!-- each hour
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
    -->
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%c] %m%n" />
    </layout>
    </appender>
    <appender name="file.text.APPFILE"
    class="org.apache.log4j.RollingFileAppender">
    <param name="threshold" value="error" />
    <param name="file" value="${webapp.root}/WEB-INF/logs/juyee.log" />
    <param name="maxFileSize" value="1024KB" />
    <param name="maxBackupIndex" value="5" />
    <param name="append" value="true" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern"
    value="%d %-5p %c - %m [%t] (%F:%L)%n" />
    </layout>
    </appender>
    <appender name="file.html.HTML"
    class="org.apache.log4j.RollingFileAppender">
    <param name="threshold" value="error" />
    <param name="file" value="/juyee-log.html" />
    <param name="maxFileSize" value="1024KB" />
    <param name="maxBackupIndex" value="5" />
    <param name="append" value="true" />
    <layout class="org.apache.log4j.HTMLLayout" />
    </appender>
    <appender name="file.xml.XML"
    class="org.apache.log4j.RollingFileAppender">
    <param name="threshold" value="error" />
    <param name="file" value="/juyee-log.xml" />
    <param name="maxFileSize" value="1024KB" />
    <param name="maxBackupIndex" value="5" />
    <param name="append" value="true" />
    <layout class="org.apache.log4j.xml.XMLLayout" />
    </appender>

    <appender name="mail.MAIL" class="org.apache.log4j.net.SMTPAppender">
    <param name="threshold" value="debug"/>
    <!--
    <param name="threshold" value="fatal"/>
    -->
    <param name="BufferSize" value="10"/>
    <param name="From" value="yangguanjun@justonetech.com"/>
    <param name="SMTPHost" value="www.justonetech.com"/>
    <param name="Subject" value="juyee-log4jMessage"/>
    <param name="To" value="yangguanjun@justonetech.com"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss.SSS} [%p]-[%c] %m%n" />
    </layout>
    </appender>

    <appender name="remote.CHAINSAW"
    class="org.apache.log4j.net.SocketAppender">
    <param name="threshold" value="fatal" />
    <param name="remoteHost" value="localhost" />
    <param name="port" value="4445" />
    <param name="locationInfo" value="true" />
    </appender>

    <category name="com.juyee" additivity="true">
    <priority value="info" />
    <appender-ref ref="console.CONSOLE" />
    <!--
    <appender-ref ref="file.text.DATE_FILE" />
    -->
    </category>

    <category name="com.co" additivity="true">
    <priority value="debug" />
    <appender-ref ref="console.CONSOLE" />
    <appender-ref ref="file.text.DATE_FILE" />
    </category>

    <category name="org" additivity="true">
    <priority value="WARN" />
    <appender-ref ref="console.CONSOLE" />
    <!--
    <appender-ref ref="file.text.DATE_FILE" />
    -->
    </category>

    <root>
    <!--
    <level value="trace" />
    <level value="debug" />
    <level value="info" />
    <level value="warn" />
    <level value="error" />
    <level value="fatal" />
    <appender-ref ref="console.CONSOLE" />
    <appender-ref ref="file.text.DATE_FILE"/>
    -->
    </root>
    </log4j:configuration>

    ===================================================

    今天弄mondrian時(shí)才注意log4j.xml,原來(lái)一直使用log4j.properties,發(fā)現(xiàn)它比properties功能強(qiáng)大,可以配置輸出多個(gè)log文件。
    轉(zhuǎn)一個(gè)基本的配置:

    log4j 有兩種配置方法,大家熟知的是properties文件但是最近的項(xiàng)目實(shí)施中,每次去用戶那里裝系統(tǒng),都要苦惱于log文件放在不同位置,要改property文件就要重打jar包,麻煩的緊。而如果采用xml配置的方法,直接放在WEB-INFO下,要修改路徑,很方便。查了些資料,終于把系統(tǒng)的log4j改成在xml中配置啦。
    記一下記一下……嘿嘿
    附:log4j的API http://logging.apache.org/log4j/docs/api/index.html
    log4i.xml 文件
    <?xml version="1.0" encoding="GB2312" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="FILE"
    class="org.apache.log4j.RollingFileAppender">
    <!-- 設(shè)置通道file和輸出方式:org.apache.log4j.RollingFileAppender -->
    <param name="File" value="D:/zhaotj/all.output.log" /><!-- 設(shè)置File參數(shù):日志輸出文件名 -->
    <param name="Append" value="true" /><!-- 設(shè)置是否在重新啟動(dòng)服務(wù)時(shí),在原有日志的基礎(chǔ)添加新日志 -->
    <param name="MaxBackupIndex" value="10" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 設(shè)置輸出文件項(xiàng)目和格式 -->
    </layout>
    </appender>

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <!-- 設(shè)置監(jiān)視器輸出方式 -->
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern"
    value="%-4r [%t] %-5p %c %x - %m%n" />
    </layout>
    <!--濾鏡設(shè)置輸出的級(jí)別-->
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="levelMin" value="info" />
    <param name="levelMax" value="info" />
    <param name="AcceptOnMatch" value="true" />
    </filter>
    </appender>

    <root><!-- 設(shè)置接收所有輸出的通道 -->
    <priority value="info" />
    <appender-ref ref="FILE" /><!-- 與前面的通道id相對(duì)應(yīng) -->
    <appender-ref ref="STDOUT" />
    </root>

    </log4j:configuration>
    建好xml文件后 要寫(xiě)一個(gè)servlet類(lèi)繼承actionservlet,當(dāng)工程初始化時(shí)自動(dòng)加載xml配置文件
    package com.asiainfo;
    import javax.servlet.ServletException;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.log4j.xml.DOMConfigurator;
    import org.apache.struts.action.ActionServlet;

    public class ExtendedActionServlet extends ActionServlet {
    private Log log = LogFactory.getLog(this.getClass().getName());

    public ExtendedActionServlet() {}

    public void init() throws ServletException {
    log.info(
    "Initializing, My MyActionServlet init this System's Const Variable");
    String prefix = this.getServletConfig().getServletContext().getRealPath(
    "/");//讀取項(xiàng)目的路徑
    String file = this.getServletConfig().getInitParameter("log4j");
    //讀取log4j相對(duì)路徑
    String filePath = prefix + file;
    DOMConfigurator.configure(filePath);//加載.xml文件
    log.info("Initializing, end My Init");
    super.init();//應(yīng)用了struts,此方法不能省,ActionServlet覆蓋了的此方法中有很多重要操作
    }
    }
    我們可以看到 在此類(lèi)中 用了相對(duì)路徑來(lái)加載xml的方法,首先通過(guò)prefix 讀取了項(xiàng)目的路徑然后再通過(guò)讀取web.xml中的log4j變量,獲得log4j.xml的相對(duì)路徑 兩者結(jié)合 就是他的絕對(duì)路徑拉
    最后在web.xml中配置action信息 就可以實(shí)現(xiàn)加載啦
    web.xml
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
    com.asiainfo.ExtendedActionServlet
    </servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>

    <!-- tsExtend -->
    <init-param>
    <param-name>config/tsextend</param-name><!--設(shè)備檢測(cè)子模塊-->
    <param-value>
    /WEB-INF/tsextend/struts-config.xml
    </param-value>
    </init-param>
    <init-param>
    <param-name>log4j</param-name><!--log4j.xml的路徑-->
    <param-value>
    /WEB-INF/log4j.xml
    </param-value>
    </init-param>
    <init-param>
    <param-name>info</param-name>
    <param-value>3</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup><!--設(shè)置當(dāng)工程初始時(shí)便執(zhí)行-->
    </servlet>

    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    依據(jù)各個(gè)級(jí)別的日志輸出到不同文件

    log4j支持這個(gè)功能,不過(guò)不能再使用Properties配置,必須使用XML

    建一個(gè)log4j.xml
    <?xml version= "1.0 " encoding= "UTF-8 "?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd ">
    <log4j:configuration xmlns:log4j= "http://jakarta.apache.org/log4j/ ">
    <appender name= "STDOUT " class= "org.apache.log4j.ConsoleAppender ">
    <layout class= "org.apache.log4j.PatternLayout "/>
    </appender>
    <appender name= "DEBUG " class= "org.apache.log4j.RollingFileAppender ">
    <param name= "File " value= "debug.log "/>
    <param name= "Append " value= "true "/>
    <param name= "MaxFileSize " value= "500KB "/>
    <param name= "MaxBackupIndex " value= "2 "/>
    <layout class= "org.apache.log4j.PatternLayout "/>
    <filter class= "org.apache.log4j.varia.LevelRangeFilter ">
    <param name= "LevelMax " value= "DEBUG " />
    <param name= "LevelMin " value= "DEBUG " />
    </filter>
    </appender>
    <appender name= "INFO " class= "org.apache.log4j.RollingFileAppender ">
    <param name= "File " value= "info.log "/>
    <param name= "Append " value= "true "/>
    <param name= "MaxFileSize " value= "500KB "/>
    <param name= "MaxBackupIndex " value= "2 "/>
    <layout class= "org.apache.log4j.PatternLayout "/>
    <filter class= "org.apache.log4j.varia.LevelRangeFilter ">
    <param name= "LevelMax " value= "INFO " />
    <param name= "LevelMin " value= "INFO " />
    </filter>
    </appender>
    <root>
    <appender-ref ref= "STDOUT "/>
    <appender-ref ref= "DEBUG "/>
    <appender-ref ref= "INFO "/>
    </root>
    </log4j:configuration>

    代碼中DOMConfigurator.configure( "log4j.xml ");


    這樣就可以在log.debug和log.info時(shí)分別打印到不同文件中,如果你還需要更多的文件,可以復(fù)制多幾次appender就可以了
    (1). 輸出方式appender一般有5種:

    org.apache.log4j.RollingFileAppender(滾動(dòng)文件,自動(dòng)記錄最新日志)
    org.apache.log4j.ConsoleAppender (控制臺(tái))
    org.apache.log4j.FileAppender (文件)
    org.apache.log4j.DailyRollingFileAppender (每天產(chǎn)生一個(gè)日志文件)
    org.apache.log4j.WriterAppender (將日志信息以流格式發(fā)送到任意指定的地方)



    (2). 日記記錄的優(yōu)先級(jí)priority,優(yōu)先級(jí)由高到低分為
    OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
    Log4j建議只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG這五個(gè)級(jí)別。



    (3). 格式說(shuō)明layout中的參數(shù)都以%開(kāi)始,后面不同的參數(shù)代表不同的格式化信息(參數(shù)按字母表順序列出):
    %c 輸出所屬類(lèi)的全名,可在修改為 %d{Num} ,Num類(lèi)名輸出的維(如:"org.apache.elathen.ClassName",%C{2}將輸出elathen.ClassName)
    %d 輸出日志時(shí)間其格式為 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
    %l 輸出日志事件發(fā)生位置,包括類(lèi)目名、發(fā)生線程,在代碼中的行數(shù)
    %n 換行符
    %m 輸出代碼指定信息,如info(“message”),輸出message
    %p 輸出優(yōu)先級(jí),即 FATAL ,ERROR 等
    %r 輸出從啟動(dòng)到顯示該log信息所耗費(fèi)的毫秒數(shù)
    %t 輸出產(chǎn)生該日志事件的線程名


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲免费在线视频| a级毛片在线免费观看| 桃子视频在线观看高清免费完整| 亚洲AV无码乱码国产麻豆穿越 | 84pao强力永久免费高清| 亚洲Av永久无码精品三区在线 | 18禁黄网站禁片免费观看不卡| 337p日本欧洲亚洲大胆艺术| 114一级毛片免费| 亚洲熟妇成人精品一区| 日本免费一区二区三区最新vr| 猫咪免费观看人成网站在线| 亚洲精品久久久www | 69堂人成无码免费视频果冻传媒| 亚洲国产精品综合久久20| 毛片a级毛片免费观看免下载| 亚洲av无码专区青青草原| 全亚洲最新黄色特级网站 | 99热在线免费观看| 亚洲国产精品yw在线观看| 好男人www免费高清视频在线| 精品国产亚洲一区二区三区在线观看| 亚洲精品成a人在线观看| 野花香高清视频在线观看免费| 亚洲综合久久1区2区3区| 日本高清免费不卡在线| 三年片免费观看大全国语| 亚洲伦理一二三四| 亚洲AV无码一区二区三区在线观看| 免费精品久久天干天干| 亚洲va久久久久| 亚洲午夜久久久影院| 成人免费午夜无码视频| 国产免费内射又粗又爽密桃视频| 久久久久亚洲精品天堂| 国产成人免费片在线视频观看| 免费在线看黄的网站| 鲁死你资源站亚洲av| 久久亚洲精精品中文字幕| 国产午夜影视大全免费观看| 免费无码一区二区三区|