Posts Tagged ‘annoyance’
IPhone — OS 3.0 resets cellular provider
It seems the IPhone OS 3.0 update has reset my cellular data settings.
I kept getting the “Could not activate cellular data network. You are not subscribed to a cellular data service.” message.
This may explain why MMS never worked — ALL of the APNs are wrong for pay and go. [UPDATE: Nope, MMS still doesn't work] [UPDATE: after setting the APN for MMS, then trying to send one I get a message from 02 saying they'll set it up for me -- should now be in business]
To fix:
- Settings > Network > Cellular Data Network
- Reset the APNs to payandgo.02.co.uk
Nice going 02 morons.
Seealso: Pay and go help.
Log pollution and log4net
LevelRangeFilter
Small tip for configuring filters — take care with acceptOnMatch, read the documentation for the exact behaviour.
For example, to get a LevelRangeFilter to pass the event on the subsequent filters, use the following:
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="false" />
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="xxx-yyy-zzz"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
The default value for acceptOnMatch is true, so had we left it out we would be logging everything between DEBUG and FATAL.
FilterSkeleton.Decide
This is the operation that determines whether the filter should deny, accept or pass on a log event:.
[LoggerMatchFilter.Decide] The rendered message is matched against the LoggerToMatch. If the LoggerToMatch equals the beginning of the incoming LoggerName (StartsWith) then a match will have occurred. If no match occurs this function will return Neutral allowing other filters to check the event. If a match occurs then the value of AcceptOnMatch is checked. If it is true then Accept is returned otherwise Deny is returned.
[LevelMatchFilter.Decide] If the Level of the event matches the level of the filter then the result of the function depends on the value of AcceptOnMatch. If it is true then the function will return Accept, it it is false then it will return Deny. If the Level does not match then the result will be Neutral.
The value of acceptOnMatch can be important if you don’t want your filter to exit early. In this example, we have to set it to false on our LevelRangeFilter for this reason. Perhaps we would be better to reorder them.
References
Does anyone else wish McCartney would shut up and fuck off?
I wish I could filter my newspaper…
