asp.net - Can't load Log4Net configuration -
i have brand new console application in vb.net. want use log4net did following steps , works. great. yahoo.
but have place log4net.config in bin/debug log4net.dll , log4net.xml. have tried many things no joy. or haven't got right combination. how can move log4net.config app root?
installed log4net nuget.
i added
<assembly: xmlconfigurator(configfile:="log4net.config", watch:=true)> in assemblyinfo.vb.
this how calling it:
public class class1 'save log4net log sql server private shared readonly dblog ilog = logmanager.getlogger("testlog4net") public shared sub main(byval args() string) dblog.error("log4net testing v1") end sub end class my log4net.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configsections> <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler, log4net" /> </configsections> <log4net> <appender name="adonetappender" type="log4net.appender.adonetappender"> <buffersize value="1" /> <connectiontype value="system.data.sqlclient.sqlconnection, system.data, version=2.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089" /> <connectionstring value="xxxxx" /> <commandtext value="xxxxx" /> <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> <parameter> <parametername value="@exception" /> <dbtype value="string" /> <size value="2000" /> <layout type="log4net.layout.exceptionlayout" /> </parameter> </appender> <logger name="testlog4net"> <level value="all" /> <appender-ref ref="adonetappender" /> </logger> </log4net> </configuration> i have tried
to set following line before dblog.error("xx")
log4net.config.xmlconfigurator.configure() to set in app.config.
<log4net configsource="log4net.config" /> to move whole log4net.config app.config. didn't work.
to set suggested on 1 post. didn't work either.
<appsettings> <add key="log4net.config" value="log4net.config"/> <add key="log4net.config.watch" value="true"/> </appsettings> to declare instead of getlogger("name") using. no joy either.
private shared readonly log ilog = logmanager.getlogger(system.reflection.methodbase.getcurrentmethod().declaringtype)
if want move log4net.config file bin/debug, try right-clicking file in solution explorer -> properties -> change value of copy output directory to copy always. i'm not sure if want. so, maybe wrong. feel free correct me. ;)
edit: way write pre-build command. right-click project in solution explorer -> properties -> go build events tab
assuming log4net.config file present in project directory (directory vb files present), following command can given under pre-build event command line,
xcopy "$(projectdir)log4net.config" "$(targetdir)"
Comments
Post a Comment