posts - 5, comments - 14, trackbacks - 0, articles - 20

置顶随笔

摘要: 首先非常感谢大家对我做的网站的支持,也提了不少意见。我对一些提出的问题进行了修正,请大家再帮我看看,看有哪些问题要修改的,下一步我将把我网站修改追加的情况定期做个报告。同时请大家批评指导,先谢谢了。我的网站是http://www.tnewlife.com/(淘牛福),我的msn是lr21shiji@hotmail.com。依旧希望大家能够支持我!阅读全文

posted @ 2010-09-16 09:35 lr21shiji 阅读(93) 评论(0) 编辑

摘要: 好久没有写文章了,有些生疏。在前一段时间里,我自己弄了个网站。网址是http://www.tnewlife.com(淘牛福),自我感觉还行,大家有空帮忙支持一下。在做这个网站的过程中我学会了很多东西。以前都是客户要求怎么做,现在是自己要怎么做,然后去实现,不停的反复,最终完成。网站可能还会有不少问题,请大家指正,先谢谢了。有什么问题或有什么意见,希望大家与我联系,共同进步。我的msn是lr21sh...阅读全文

posted @ 2010-09-13 10:41 lr21shiji 阅读(295) 评论(5) 编辑

2011年6月22日

修改oracle 10g的字符集

修改数据库字符集为:ZHS16GBK
查看服务器端字符集
SQL > select * from V$NLS_PARAMETERS;
修改:
$sqlplus /nolog
SQL>conn / as sysdba
若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命
令关闭数据库服务器,然后执行以下命令:
SQL>shutdown immediate
SQL>STARTUP MOUNT
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK
若出现超集上面语句无法修改,需使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active

若报以上错误则:select sid,serial#,username,machine from v$session;查看有哪些SESSION,然后

alter system kill session 'sid'serial#' immediate;然后

alter system kill session '158,7' immediate;如这样

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP

posted @ 2011-06-22 13:34 lr21shiji 阅读(70) 评论(0) 编辑

2010年9月16日

  首先非常感谢大家对我做的网站的支持,也提了不少意见。我对一些提出的问题进行了修正,请大家再帮我看看,看有哪些问题要修改的,下一步我将把我网站修改追加的情况定期做个报告。同时请大家批评指导,先谢谢了。我的网站是http://www.tnewlife.com/(淘牛福),我的msn是lr21shiji@hotmail.com。依旧希望大家能够支持我!

posted @ 2010-09-16 09:35 lr21shiji 阅读(93) 评论(0) 编辑

2010年9月13日

  好久没有写文章了,有些生疏。在前一段时间里,我自己弄了个网站。网址是http://www.tnewlife.com(淘牛福),自我感觉还行,大家有空帮忙支持一下。在做这个网站的过程中我学会了很多东西。以前都是客户要求怎么做,现在是自己要怎么做,然后去实现,不停的反复,最终完成。网站可能还会有不少问题,请大家指正,先谢谢了。有什么问题或有什么意见,希望大家与我联系,共同进步。我的msn是lr21shiji@hotmail.com.

posted @ 2010-09-13 10:41 lr21shiji 阅读(295) 评论(5) 编辑

2009年10月9日

一 Log4net简介

Log4net是基于.net开发的一款非常著名的记录日志开源组件。他最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件-log4j。Log4net记录日志的功能非常强大。它可以将日志分不同的等级,比不同的样式,将日志输出到不同的媒介。

Log4net可以从http://logging.apache.org/log4net/downloads.html网站下载最新版本。

 

二 Log4net核心组成

Log4net主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders。


一)Logger(日志)


1. 记录日志的分类:

Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。


2. 日志的级别

Log4net支持多种级别的日志。优先级从高到低依次排列如下:

FATAL > ERROR > WARN > INFO > DEBUG

此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。


二)Appenders


Appenders决定日志输出的方式。

Appenders必须实现log4net.Appenders.IAppender接口。


Log4net目前支持的输出方式包括:
1 AdoNetAppender
     将日志记录到数据库中。可以采用SQL和存储过程两种方式。

2 AnsiColorTerminalAppender
     在ANSI 窗口终端写下高亮度的日志事件。

3 AspNetTraceAppender
     能用asp.net中Trace的方式查看记录的日志。

4 BufferingForwardingAppender
     在输出到子Appenders之前先缓存日志事件。

5 ConsoleAppender
     将日志输出到控制台。

6 EventLogAppender
     将日志写到Windows Event Log.

7 FileAppender
     将日志写到文件中。

8 LocalSyslogAppender
     将日志写到local syslog service (仅用于UNIX环境下).
9 MemoryAppender
     将日志存到内存缓冲区。

10 NetSendAppender
     将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。

11 RemoteSyslogAppender
     通过UDP网络协议将日志写到Remote syslog service。

12 RemotingAppender
     通过.NET Remoting将日志写到远程接收端。

13 RollingFileAppender
     将日志以回滚文件的形式写到文件中。

14 SmtpAppender
     将日志写到邮件中。

15 TraceAppender
     将日志写到.NET trace 系统。

16 UdpAppender
     将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。


三)Filters


Appender对象将日志以缺省的方式传到输出流,然后Filter可以按照不同的标准控制日志的输出。Filter可以再配置文件中配置。最简单的形式是在appender中写明一个Threshold.这样只有级别大于或等于此Threshold的日志才被记录。

Filters必须实现log4net.Filters.IFilter接口。


四)Layouts


Layouts控制日志显示的格式样式。日志的显示格式如下:

"%timestamp [%thread] %-5level %logger - %message%newline"

Timestamp: 表示程序已经开始执行的时间。 单位[毫秒]。

Thread:执行当前代码的线程。

Level:日志的级别。

Logger:日志相关请求的名称。

Message: 日志消息。


Layouts还可以控制日志的输出样式,比如以普通形式或以xml等形式输出。


五)Object Renderers


这是很重要的一项,log4net将按照用户定义的标准输出日志消息。

Object Renders必须实现log4net.ObjectRenderer.IObjectRenerer接口。

 

三 如何在项目中使用log4net


下面有个基于控制台的demo,举例描述了log4net怎么用于输出日志。
本例中,日志将会记录到文件,控制台,事件日至和Access数据库中。

一)主要代码:

1. 配置文件app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!-- Register a section handler for the log4net section -->
   <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
   </configSections>
   <appSettings>
    <!-- To enable internal log4net logging specify the following appSettings key -->
    <!-- <add key="log4net.Internal.Debug" value="true"/> -->
   </appSettings>
   <!-- This section contains the log4net configuration settings -->
   <log4net>
    <!--定义输出到文件中-->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
     <!--定义文件存放位置-->
     <file value="D:\log-file1.txt" />
     <!-- Example using environment variables in params -->
     <!-- <file value="${TMP}\log-file.txt" /> -->
     <!--<sppendToFile value="true" />-->
     <!-- An alternate output encoding can be specified -->
     <!-- <encoding value="unicodeFFFE" /> -->
     <layout type="log4net.Layout.PatternLayout">
      <!--每条日志末尾的文字说明-->
      <footer value="[Footer]--Test By Ring1981 " />
      <!--输出格式-->
      <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
     </layout>
    </appender>
    <!--定义输出到控制台命令行中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
     <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
     </layout>
    </appender>
    <!--定义输出到windows事件中-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
     <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
     </layout>
    </appender>
    <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为D盘的access.mdb-->
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
     <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\access.mdb" />
     <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
     <!--定义各个参数-->
     <parameter>
      <parameterName value="@log_date" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%date" />
      </layout>
     </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="1024" />
      <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%message" />
      </layout>
     </parameter>
    </appender>
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    <root>
     <appender-ref ref="LogFileAppender" />
     <appender-ref ref="ConsoleAppender" />
     <appender-ref ref="EventLogAppender" />
     <appender-ref ref="AdoNetAppender_Access" />
    </root>
   </log4net>
</configuration>

posted @ 2009-10-09 17:29 lr21shiji 阅读(359) 评论(0) 编辑

2009年1月21日

MSsqllink Server 配置(引用Csdn邹建回帖)

 

首先執行下面的語句:

EXEC sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'  -- 可以用: 服务器ip,端口
EXEC sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
EXEC sp_serveroption 'srv_lnk','rpc out','true'        --这个允许调用链接服务器上的存储过程

調用例子:
SELECT * FROM srv_lnk.MEIJIN.dbo.HASOU

 

posted @ 2009-01-21 15:28 lr21shiji 阅读(90) 评论(0) 编辑