В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Я имел различное взятие и нуждался в следующем синтаксисе:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
, который отличается от последнего сообщения xsl, но имел значение для меня. Проверьте этот сообщение в блоге , оно выручило меня.
Вы попытались использовать отдельный log4net.config файл?
@steve_mtl: Изменение расширений файла от .config
до .xml
решило проблему. Спасибо.
@Wheelie: Я не мог попробовать Ваше предложение, потому что мне было нужно решение, которое работает с неизмененной установкой Visual Studio.
<час>Для подведения его вот то, как решить проблему:
xml
- файл. Удостоверьтесь, что использовали .xml
в качестве расширения файла. Добавляют следующую строку к AssemblyInfo.cs
:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xmlFile.xml", Watch = true)]
Я полагаю, что Вы видите сообщение, потому что Visual Studio не знает, как проверить log4net раздел файла конфигурации. Необходимо быть в состоянии зафиксировать это путем копирования log4net XSD в C:\Program Files\Microsoft Visual Studio 8\XML\Schemas (or wherever your Visual Studio is installed). Как добавленная премия необходимо теперь получить поддержку intellisense log4net
Просто слово предупреждения любому следует совету ответов в этом потоке. Существует возможная угроза безопасности при наличии log4net конфигурации в xml от корня веб-сервиса, поскольку это будет доступно для любого по умолчанию. Просто имейте в виду, содержит ли Ваша конфигурация уязвимые данные, можно хотеть еще поместить его где.
Можно связать в схеме с log4net
элемент. Существуют некоторые плавающие вокруг, большинство не полностью предусматривает доступные различные варианты. Я создал следующий xsd для обеспечения как можно большей проверки: http://csharptest.net/downloads/schema/log4net.xsd
можно связать его в xml легко путем изменения log4net
элемент:
<log4net
xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Поскольку VS2008 просто добавляют log4net.xsd файл к Вашему проекту; VS смотрит в папке проекта, а также каталоге установки, который упомянул Wheelie.
кроме того, с помощью .config расширения вместо .xml избегает проблемы безопасности, так как IIS не служит *.config файлам по умолчанию.
На самом деле вам не нужно придерживаться расширения .xml. Вы можете указать любое другое расширение в атрибуте ConfigFileExtension:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension=".config", Watch = true)]
Я получил тестовый проект asp для сборки, поместив файл xsd в папку схем Visual Studio, как описано выше (для меня это C: \ Program Files \ Microsoft Visual Studio 8 \ XML \ Схемы), а затем мой web.config
выглядит следующим образом:
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<appSettings>
</appSettings>
<connectionStrings>
</connectionStrings>
<system.web>
<trace enabled="true" pageOutput="true" />
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true" />
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows" />
<customErrors mode="Off"/>
<!--
<customErrors mode="Off"/>
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!-- Please make shure the ..\\Logs directory exists! -->
<param name="File" value="Logs\\Log4Net.log"/>
<!--<param name="AppendToFile" value="true"/>-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="" />
<from value="" />
<subject value="" />
<smtpHost value="" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property] - %message%newline%newline%newline" />
</layout>
</appender>
<logger name="File">
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
<logger name="EmailLog">
<level value="ALL" />
<appender-ref ref="SmtpAppender" />
</logger>
</log4net>
</configuration>