• asp.net MVC+NHibernate项目开发日志


     
    项目开发用了log4net做错误跟踪,log4net的确强大好用,可以记录日志的载体很多,可以是固定文件、日期文件、access数据库、sqlserver数据库、控制台等。
    在配置时唯独oracle没有配置成功,其他各项均配置成功,oracle整了一天终于也ok了看见oracle库里写入的数据很开心:),现整理如下,也便于其他朋友借鉴。
    几个注意事项:
    1,数据库不要用sys等默认的管理员账户,一是不安全,二是log4net不能写入成功,要新建用户才能成功。
    会有这样的错误提示:{"ORA-28009: connection as SYS should be as SYSDBA or SYSOPER\n"},invalid username/password; logon denied
    2,表字段首字母要大写,sql尾部不要加“;”会有这样的错误:ORA-00911: invalid character
    3,在使用过程中发现,oracle10g的字符乱码,应该把客户端字符集调整和服务器一样的。
    4,log4net最好定义在一个独立的配置文件中,方便开发维护。

    log4net在webconfig中的定义如下。
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <appSettings>
      </appSettings>
      <log4net>

       <!--定义日志的输出媒介,可是一种类型或其他类型输出。-->
        <root>
          <!-- 定义输出级别 None > Fatal  >  ERROR  >  WARN  >  DEBUG  >  INFO  >  ALL -->
          <level value="ALL" />

          <!-- Oracle方式 记录日志-->
          <appender-ref ref="AdoNetAppender_Oracle" />

       </root>
        <!--定义输出到 Oracle 数据库-->
         <appender name="AdoNetAppender_Oracle" type="log4net.Appender.AdoNetAppender">
          <connectionType value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          <connectionString value="data source=KANGSHI;User ID=user;Password=user" />  
          <!--  <commandText value="INSERT INTO Log (Datetime,Thread,Log_Level,Logger,Message) VALUES (:log_date, :thread, :log_level, :logger, :message)" />-->
             <commandText value="INSERT INTO Log (Logid,Datetime,Thread,Log_Level,Logger,Message) VALUES (N_SEC_LOG_seq.nextval,:log_date, :thread, :log_level, :logger, :message)" />
           <!--缓冲条数-->
           <bufferSize value="10" />
          <parameter>
            <parameterName value=":log_date" />
            <dbType value="DateTime" />
            <!--系统当前时间-->
            <layout type="log4net.Layout.RawTimeStampLayout" />       
          </parameter>
          <parameter>
            <parameterName value=":thread" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%thread" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value=":log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%level" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value=":logger" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%logger" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value=":message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%message" />
            </layout>
          </parameter>
        </appender>
      </log4net>
    </configuration>
  • 相关阅读:
    call()与apply()的作用与区别
    Tomcat8/9的catalina.out中文乱码问题解决
    怎样查看Jenkins的版本
    每日日报2020.8.18
    528. Random Pick with Weight
    875. Koko Eating Bananas
    721. Accounts Merge
    515. Find Largest Value in Each Tree Row
    286. Walls and Gates (Solution 1)
    408. Valid Word Abbreviation
  • 原文地址:https://www.cnblogs.com/wellsoho/p/1539342.html
Copyright © 2020-2023  润新知