Fork me on GitHub
<?xml version="1.0" encoding="utf-8" ?>

<log4net>

    <appender name="TastInfo" type="log4net.Appender.RollingFileAppender">

        <file value="Log\\Info\\" />

        <appendToFile value="true" />

        <rollingStyle value="Composite" />

        <maxSizeRollBackups value="-1" />

        <maximumFileSize value="1MB" />

        <staticLogFileName value="false" />

        <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>

        <layout type="log4net.Layout.PatternLayout">

            <conversionPattern value="%date  %-5level  - %message%newline" />

        </layout>

    </appender>

    <appender name="TastError" type="log4net.Appender.RollingFileAppender">

        <file value="log\\Error\\" />

        <appendToFile value="true" />

        <rollingStyle value="Composite" />

        <maxSizeRollBackups value="-1" />

        <maximumFileSize value="1MB" />

        <staticLogFileName value="false" />

        <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>

        <layout type="log4net.Layout.PatternLayout">

            <conversionPattern value="%date  %-5level - %message%newline" />

        </layout>

    </appender>

    <appender name="TastDebug" type="log4net.Appender.RollingFileAppender">

        <file value="log\\Debug\\" />

        <appendToFile value="true" />

        <rollingStyle value="Composite" />

        <maxSizeRollBackups value="-1" />

        <maximumFileSize value="1MB" />

        <staticLogFileName value="false" />

        <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>

        <layout type="log4net.Layout.PatternLayout">

            <conversionPattern value="%date  %-5level - %message%newline" />

        </layout>

    </appender>

    <logger name="Info">

        <level value="ALL"/>

        <appender-ref ref="Info" />

        <appender-ref ref="TastInfo" />

    </logger>

    <logger name="Error">

        <level value="ALL"/>

        <appender-ref ref="Error" />

        <appender-ref ref="TastError" />

    </logger>

    <logger name="Debug">

        <level value="ALL"/>

        <appender-ref ref="Debug" />

        <appender-ref ref="TastDebug" />

    </logger>

</log4net>
public class Log

    {

        private const string SError = "Error";

        private const string SDebug = "Debug";

        private const string DefaultName = "Info";



        static Log()

        {

            var path = AppDomain.CurrentDomain.BaseDirectory + @"\log4net_config.xml";

            log4net.Config.XmlConfigurator.Configure(new FileInfo(path));

        }



        public static log4net.ILog GetLog(string logName)

        {

            var log = log4net.LogManager.GetLogger(logName);

            return log;

        }



        public static void Debug(string message)

        {

            var log = log4net.LogManager.GetLogger(SDebug);

            if (log.IsDebugEnabled)

                log.Debug(message);

        }



        public static void Debug(string message, Exception ex)

        {

            var log = log4net.LogManager.GetLogger(SDebug);

            if (log.IsDebugEnabled)

                log.Debug(message, ex);

        }



        public static void Error(string message)

        {

            var log = log4net.LogManager.GetLogger(SError);

            if (log.IsErrorEnabled)

                log.Error(message);

        }



        public static void Error(string message, Exception ex)

        {

            var log = log4net.LogManager.GetLogger(SError);

            if (log.IsErrorEnabled)

                log.Error(message, ex);

        }



        public static void Fatal(string message)

        {

            var log = log4net.LogManager.GetLogger(DefaultName);

            if (log.IsFatalEnabled)

                log.Fatal(message);

        }



        public static void Info(string message)

        {

            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);

            if (log.IsInfoEnabled)

                log.Info(message);

        }



        public static void Warn(string message)

        {

            var log = log4net.LogManager.GetLogger(DefaultName);

            if (log.IsWarnEnabled)

                log.Warn(message);

        } 

    }

不输出日志的原因是因为, 默认private static string DefaultName = "log",在配置文件里面找不到对应的节点值。

总结:log4net.LogManager.GetLogger(Name),这里面的Name要在配置文件中,有对应的节点值。

还有就是,假如在web.config里指定了一下信息:
<!--日志配置文件路径-->
<add key="log4net" value="\\config\\log4net_local.config" />

则务必将在根目录下创建文件夹“config”,并将配置文件log4net_local.config放入config文件夹,这样才确保输出日志文件夹Log。

转载地址:http://www.cnblogs.com/chendaoyin/archive/2013/04/17/3026717.html

posted on 2014-08-17 00:43  lingfeng95  阅读(322)  评论(0编辑  收藏  举报