Comments (7)
Great, thanks for the investigative work there! I guess maybe using a closure instead would be better, otherwise public method with an internal phpdoc.. Anyway I'll look at this next week
from monolog.
This is weird.. I can't reproduce it (https://3v4l.org/ZHA87) and I don't really see why it would do this as the callback is only used within the context of StreamHandler /cc @corentin-cres
from monolog.
I was able to replicate this UserFrosting by removing write permission to the log file, which resulted in a similar error message :
Fatal error: Uncaught Error: Invalid callback Monolog\Handler\StreamHandler::customErrorHandler, cannot access private method Monolog\Handler\StreamHandler::customErrorHandler()
Using the example above (https://3v4l.org/ZHA87) on the same environment and on the same file (without write access) returned the proper output :
string(40) "Failed to open stream: Permission denied" string(9) "Test test"
The difference is our app use a custom StreamWrapper. So the core PHP fopen
isn't actually called by Monolog's StreamHandler, but our own. And both will invoke customErrorHandler
, which won't work on our side since the method is private. Therefore, customErrorHandler
must be public.
Note the actual process when customErrorHandler
is public is similar to this :
- Monolog StreamHandler call
fopen
- Our own StreamHandler calls
fopen
fopen
trows an exception- Our StreamHandler invoke
customErrorHandler
(even if we use@fopen
), then do the rest of it's job and returnfalse
. - Monolog invoke
customErrorHandler
again
from monolog.
Here's a way to replicate : https://3v4l.org/PjtpI
(Forget the open_basedir restriction in effect
error... that means it's working, simply I can't replicate a non-writable file on the editor)
There we go. Both should return "Failed to open stream" : https://3v4l.org/LsBph
from monolog.
@lcharette can you please check using dev-main if this problem is fixed for you?
from monolog.
I confirm problem is fixed with dev-main
. Thanks !
from monolog.
Great
from monolog.
Related Issues (20)
- Could a new release be considered to remove the 0.7MB logo from the package ? HOT 1
- Uncaught Error: Class "Monolog\Logger" not found HOT 7
- User definable duplication for DeduplicationHandler
- Encounter problem in format function HOT 3
- DatetimeImmutable HOT 1
- [Discussion] Reset FingersCrossedHandler on stateful runtimes HOT 8
- Extending Processors - private properties HOT 1
- Incorrect logs are written in Monolog files intermittently HOT 1
- Truncated JsonFormatter logs at 8191 characters HOT 5
- Log Message is truncated HOT 1
- Log level not compliant with rfc5424 HOT 2
- DeduplicationHandler in a read only container HOT 4
- IntrospectionProcessorTests: $expect and $actual are the same object by reference.
- Php 8.3 compatibility issue HOT 5
- Adding postParams in ERROR notice for HTTP 405 code HOT 1
- `HandlerInterface::isHandling` could have better naming
- NewRelicHandler exception
- Allow to specify time for log records
- `$mustRotate` in `RotatingFileHandler` not resetting properly
- Parse error: syntax error, unexpected ')', expecting '|' or variable (T_VARIABLE) in /usr/share/php/Symfony/Component/Console/Application.php on line 238 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from monolog.